中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java泛型的重要性

發布時間:2021-10-12 10:49:45 來源:億速云 閱讀:148 作者:iii 欄目:編程語言

這篇文章主要介紹“Java泛型的重要性”,在日常操作中,相信很多人在Java泛型的重要性問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java泛型的重要性”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

1.泛型的定義

1.1 什么是泛型?

泛型就是讓一個類/一個方法,能夠支持多種不同的數據類型。

1.2 為什么要使用泛型?

Java泛型的重要性  

如果沒有泛型機制,當前封裝的數組類,只能針對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泛型類的定義

Java泛型的重要性  

類型形參一般使用一個大寫字母表示,常用的名稱有:

  • E表示Element

  • K表示Key

  • V表示Value

  • N表示Number

  • T表示Type

  • S,U,V等等

2.2泛型類的例子

Java泛型的重要性  

使用泛型的時候,在爭對對象實例化的時候需要填入泛型參數的實際類型。

把這個實際參數填寫進去之后,實際的泛型參數就被自動的替換成了String

Java的泛型只能是引用類型,如果是內置類型,就需要對應的包裝類

Java的泛型,還是基于Object實現的,本質上還是Object[],就是幫助我們完成了類型校驗和類型轉換。

2.3泛型類的實例化

2.3.1實例化語法

泛型類<類型實參>變量名 :定義一個泛型類的引用。

new 泛型類<類型實參>(構造方法實參): 實例化一個泛型類的對象

2.3.2實例化的例子

Java泛型的重要性  

注意:

  • 1.右側<>中的類型可以省略

MyArray2<Integer> myArray3=new MyArray2<>();

  • 在new MyArray2<>()對象時,<>中未明確指明類型,編譯器會根據=左側中<>的類型來推演。

  • 2.左側<>中的類型不能省略

MyArray2<> myArray3=new MyArray2<String>();//省略之后,編譯失敗

  • 編譯器在推演時,是根據左側類型來推演右側的

  • 3.雖然右側的<>可以不用寫類型,但是<>不能省略

MyArray2<String> myArray3=new MyArray2();

  • 上述代碼會產生警告

2.4泛型類的定義-類型邊界

  • 類型邊界:定義泛型類的時候,對未來實例化的時候傳入的參數實參做出限制。

  • 泛型參數這里的類型不應該隨便填,要根據實際情況做出約束

Java泛型的重要性  

注意:   沒有指定的類型的邊界E,可以視為E extends Object

到此,關于“Java泛型的重要性”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

襄垣县| 汶川县| 旬阳县| 岢岚县| 长丰县| 廊坊市| 淮滨县| 衡山县| 多伦县| 井陉县| 汤阴县| 天祝| 清涧县| 亳州市| 成安县| 青州市| 涞源县| 辛集市| 开原市| 遂昌县| 宁城县| 阜新市| 临海市| 台南市| 屯留县| 麻江县| 马龙县| 舞阳县| 苏州市| 松桃| 江津市| 平和县| 海安县| 元朗区| 丘北县| 四平市| 蓝田县| 凤城市| 惠东县| 马公市| 伊春市|