實例分析Java泛型
泛型:即“參數(shù)化類型”,所操作的數(shù)據(jù)類型被指定為一個參數(shù)。該機制允許程序員在編譯時檢測到非法的類型。
不使用泛型與使用泛型的區(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); //強制轉換,但無法轉換為字符類型,且編譯不報錯
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<>(); //簡化
stringList.add("1");
// stringList.add(1); //編譯報錯,只能添加字符類型
integerList.add(1);
// integerList.add("1"); //編譯報錯,只能添加數(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>();可以簡寫為List<String> stringList = new ArrayList<>();
泛型的優(yōu)點:
1、類型安全;例如List<String> 就只能插入String類型,簡單來說就是限制類型。
2、消除強制類型轉換;使得代碼更加可讀,并且減少了出錯機會。
3、潛在的性能收益;泛型為較大的優(yōu)化帶來可能,沒有泛型的話,程序員會指定這些強制類型轉換。
注意:
1、泛型的類型參數(shù)只能是類類型(包括自定義類),不能是簡單類型。例如List<String,Person>
2、泛型的類型參數(shù)可以有多個,例如List<String,Integer>
相關文章
java開發(fā)RocketMQ生產(chǎn)者高可用示例詳解
這篇文章主要為大家介紹了java開發(fā)RocketMQ生產(chǎn)者高可用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08
mybatis mapper.xml獲取insert后的自增ID問題
這篇文章主要介紹了mybatis mapper.xml獲取insert后的自增ID問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
springmvc @RequestBody String類型參數(shù)的使用
這篇文章主要介紹了springmvc @RequestBody String類型參數(shù)的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10
Java中Comparable與Comparator的區(qū)別解析
這篇文章主要介紹了Java中Comparable與Comparator的區(qū)別解析,實現(xiàn)Comparable接口,重寫compareTo方法,一般在實體類定義的時候就可以選擇實現(xiàn)該接口,提供一個默認的排序方式,供Arrays.sort和Collections.sort使用,需要的朋友可以參考下2024-01-01
Spring?Data?Elasticsearch?5.0.x修改數(shù)據(jù)后無法立即刷新解決方法示例
這篇文章主要為大家介紹了Spring?Data?Elasticsearch?5.0.x修改數(shù)據(jù)后無法立即刷新解決方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08

