您好,登錄后才能下訂單哦!
這篇文章主要介紹“Java泛型的重要性”,在日常操作中,相信很多人在Java泛型的重要性問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java泛型的重要性”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
1.泛型的定義
1.1 什么是泛型?
泛型就是讓一個類/一個方法,能夠支持多種不同的數據類型。
1.2 為什么要使用泛型?
如果沒有泛型機制,當前封裝的數組類,只能針對int進行,如果需要針對String ,就需要在創建一個類,把里面的int的類型改成String,后續如果需要新增其他的類型,就得如法炮制。
有了泛型之后,就可以一套代碼可以服務于多種類型
在上面的方式中,將存儲數據的類型全部有int類型改成Object,因為Java中的Object是所有類的基類
如果把類中持有的數組寫成Object[],此時是可以用來存儲多種不同類型數據的。但是這樣寫,就得寫大量的”類型轉換“相關的代碼。
public class MyArray {
public Object[] data = null;
private int size = 0;
private int capacity = 10;
public MyArray(){
data=new Object[capacity];
}
public void add(Object data){
if(size >= capacity){
return;
}
this.data[size++]=data;
}
public Object get(int index){
return data[index];
}
public static void main(String[] args) {
MyArray myArray=new MyArray();
myArray.add(new Person("張三",18));
myArray.add(new Person("李四",19));
myArray.add(new Person("王五",20));
Person person=(Person)myArray.get(0);
MyArray myArray2=new MyArray();
myArray2.add(new String("aaa"));
myArray2.add(new String("bbb"));
myArray2.add(new String("ccc"));
String str=(String)myArray2.get(0);
MyArray myArray3=new MyArray();
myArray3.add(new Integer(1));
Integer integer=(Integer)myArray3.get(0);
}
}
使用Object來湊合完成”泛型“效果,是比較麻煩的
1.需要寫一些類型轉換的代碼
2.類型轉換的代碼容易出錯,缺少一些必要的類型檢查。
2.泛型類
2.1泛型類的定義
類型形參一般使用一個大寫字母表示,常用的名稱有:
E表示Element
K表示Key
V表示Value
N表示Number
T表示Type
S,U,V等等
2.2泛型類的例子
使用泛型的時候,在爭對對象實例化的時候需要填入泛型參數的實際類型。
把這個實際參數填寫進去之后,實際的泛型參數就被自動的替換成了String
Java的泛型只能是引用類型,如果是內置類型,就需要對應的包裝類
Java的泛型,還是基于Object實現的,本質上還是Object[],就是幫助我們完成了類型校驗和類型轉換。
2.3泛型類的實例化
2.3.1實例化語法
泛型類<類型實參>變量名 :定義一個泛型類的引用。
new 泛型類<類型實參>(構造方法實參): 實例化一個泛型類的對象
2.3.2實例化的例子
注意:
1.右側<>中的類型可以省略
MyArray2<Integer> myArray3=new MyArray2<>();
在new MyArray2<>()對象時,<>中未明確指明類型,編譯器會根據=左側中<>的類型來推演。
2.左側<>中的類型不能省略
MyArray2<> myArray3=new MyArray2<String>();//省略之后,編譯失敗
編譯器在推演時,是根據左側類型來推演右側的
3.雖然右側的<>可以不用寫類型,但是<>不能省略
MyArray2<String> myArray3=new MyArray2();
上述代碼會產生警告
2.4泛型類的定義-類型邊界
類型邊界:定義泛型類的時候,對未來實例化的時候傳入的參數實參做出限制。
泛型參數這里的類型不應該隨便填,要根據實際情況做出約束
注意: 沒有指定的類型的邊界E,可以視為E extends Object
到此,關于“Java泛型的重要性”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。