欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

實(shí)例分析Java泛型

 更新時(shí)間:2018年02月28日 14:38:04   作者:彬菌  
本篇文章通過(guò)代碼實(shí)例給大家講述了Java泛型的相關(guān)知識(shí)點(diǎn)以及相關(guān)的代碼分析,對(duì)此有興趣的朋友學(xué)習(xí)下。

泛型:即“參數(shù)化類型”,所操作的數(shù)據(jù)類型被指定為一個(gè)參數(shù)。該機(jī)制允許程序員在編譯時(shí)檢測(cè)到非法的類型。

不使用泛型與使用泛型的區(qū)別

不使用泛型代碼:

import java.util.ArrayList;
import java.util.List;

public class NoGenerics {
	public static void main(String[] args){
		List arrayList=new ArrayList();
		arrayList.add("1"); //字符類型
		arrayList.add(1); //數(shù)字類型
		
		for(int i=0;i<arrayList.size();i++){
			String s=(String) arrayList.get(i); //強(qiáng)制轉(zhuǎn)換,但無(wú)法轉(zhuǎn)換為字符類型,且編譯不報(bào)錯(cuò)
			System.out.println(s);
		}
	}
}

使用泛型代碼:

import java.util.ArrayList;
import java.util.List;

public class Generics {
	public static void main(String[] args){
		List<String> stringList = new ArrayList<String>();
		List<Integer> integerList = new ArrayList<>(); //簡(jiǎn)化
		
		stringList.add("1");
//		stringList.add(1); //編譯報(bào)錯(cuò),只能添加字符類型
		
		integerList.add(1);
//		integerList.add("1"); //編譯報(bào)錯(cuò),只能添加數(shù)字類型
		
		for(int i=0;i<stringList.size();i++){
			String s=stringList.get(i);
			System.out.println(s);
		}
		
		for(int j=0;j<integerList.size();j++){
			int i=integerList.get(j);
			System.out.println(i);
		}
		
	}
}

注意:在jdk版本較高中,List<String> stringList = new ArrayList<String>();可以簡(jiǎn)寫為L(zhǎng)ist<String> stringList = new ArrayList<>();

泛型的優(yōu)點(diǎn):

1、類型安全;例如List<String> 就只能插入String類型,簡(jiǎn)單來(lái)說(shuō)就是限制類型。

2、消除強(qiáng)制類型轉(zhuǎn)換;使得代碼更加可讀,并且減少了出錯(cuò)機(jī)會(huì)。

3、潛在的性能收益;泛型為較大的優(yōu)化帶來(lái)可能,沒有泛型的話,程序員會(huì)指定這些強(qiáng)制類型轉(zhuǎn)換。

注意:

1、泛型的類型參數(shù)只能是類類型(包括自定義類),不能是簡(jiǎn)單類型。例如List<String,Person>

2、泛型的類型參數(shù)可以有多個(gè),例如List<String,Integer>

相關(guān)文章

  • java開發(fā)RocketMQ生產(chǎn)者高可用示例詳解

    java開發(fā)RocketMQ生產(chǎn)者高可用示例詳解

    這篇文章主要為大家介紹了java開發(fā)RocketMQ生產(chǎn)者高可用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • mybatis mapper.xml獲取insert后的自增ID問(wèn)題

    mybatis mapper.xml獲取insert后的自增ID問(wèn)題

    這篇文章主要介紹了mybatis mapper.xml獲取insert后的自增ID問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • springmvc @RequestBody String類型參數(shù)的使用

    springmvc @RequestBody String類型參數(shù)的使用

    這篇文章主要介紹了springmvc @RequestBody String類型參數(shù)的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 三步輕松搭建springMVC框架

    三步輕松搭建springMVC框架

    這篇文章主要教大家三步輕松搭建springMVC框架,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 什么是Spring Boot

    什么是Spring Boot

    Spring是一個(gè)非常受歡迎的Java框架,它用于構(gòu)建web和企業(yè)應(yīng)用。本文介紹將各種Spring的配置方式,幫助您了解配置Spring應(yīng)用的復(fù)雜性
    2017-08-08
  • JavaEE中關(guān)于ServletConfig的小結(jié)

    JavaEE中關(guān)于ServletConfig的小結(jié)

    ServletConfig是針對(duì)特定的Servlet的參數(shù)或?qū)傩?。ServletConfig是表示單獨(dú)的Servlet的配置和參數(shù),只是適用于特定的Servlet。從一個(gè)servlet被實(shí)例化后,對(duì)任何客戶端在任何時(shí)候訪問(wèn)有效,但僅對(duì)本servlet有效,一個(gè)servlet的ServletConfig對(duì)象不能被另一個(gè)servlet訪問(wèn)
    2014-10-10
  • Java  解決死鎖的方法實(shí)例詳解

    Java 解決死鎖的方法實(shí)例詳解

    這篇文章主要介紹了java 多線程死鎖詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Java中Comparable與Comparator的區(qū)別解析

    Java中Comparable與Comparator的區(qū)別解析

    這篇文章主要介紹了Java中Comparable與Comparator的區(qū)別解析,實(shí)現(xiàn)Comparable接口,重寫compareTo方法,一般在實(shí)體類定義的時(shí)候就可以選擇實(shí)現(xiàn)該接口,提供一個(gè)默認(rèn)的排序方式,供Arrays.sort和Collections.sort使用,需要的朋友可以參考下
    2024-01-01
  • SpringBoot集成Mybatis過(guò)程步驟圖解

    SpringBoot集成Mybatis過(guò)程步驟圖解

    這篇文章主要介紹了SpringBoot集成Mybatis過(guò)程步驟圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Spring?Data?Elasticsearch?5.0.x修改數(shù)據(jù)后無(wú)法立即刷新解決方法示例

    Spring?Data?Elasticsearch?5.0.x修改數(shù)據(jù)后無(wú)法立即刷新解決方法示例

    這篇文章主要為大家介紹了Spring?Data?Elasticsearch?5.0.x修改數(shù)據(jù)后無(wú)法立即刷新解決方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08

最新評(píng)論