java基礎 泛型解析

2021-07-22 08:02:52 字數 1375 閱讀 5885

泛型,編寫的**可以被很多不同型別的物件重用。簡單泛型類的定義:

public class generic

public generic(t info)

public void setinfo(t info)

public t getinfo()

private t info;

}

用具體的型別替換型別變數(t)就可以例項化泛型型別:

為了更好的呈現泛型的原型首先新建乙個student類:

public class student 

public student(string name,int tall)

public int gettall()

public string getname()

public void getdescription()

private string name;

private int tall;

}

主類:

public class test 

}

結果:

學生:小卓

身高:165cm

注:也可以在普通型別中定義泛型方法

我們還可以對型別變數(t)進行限定,例如使t必須繼承comparable介面,這樣才能對其陣列進行排序:

public class generic

當你定義了例子中的generic泛型類後,你可以使用:

public class test 

}

結果如上

這裡沒有使用<>傳入物件型別,例項化時將結果進行了型別轉換。泛型類的原型即將泛型中的t替換為了object。

所有的型別查詢只產生原始型別(以上面的s為例):

if(s instanceof generic) //it's true

if(s instanceof generic) //it's also true

他們都是generic型別

getclass方法總是返回原始型別:

genericstudent = new generic(....)

genericstring= new 

generic(....)

if(student .getclass() == string.getclass())  //true

使用泛型時需要注意:

1、不能丟擲也不能捕泛型類例項

2、引數化型別的陣列不合法

3、不能例項化型別變數

java基礎 泛型

int 定義了乙個陣列,陣列元素的型別是int 泛型 定義了乙個集合,集合元素的型別就是泛型定義的型別 泛型 將執行時期出現的問題classcastexception,轉移到了編譯時期 方便與程式設計師解決問題,讓執行事情問題減少,安全。泛型格式 通過 來定義要引用的資料型別 使用泛型 在集合框架中...

Java基礎 泛型 泛型介面 泛型類 泛型方法

一 二 三 泛型方法 1.public t test t t1,t t2 一 泛型 1.泛型產生的背景 原因1 集合中儲存資料時,編譯期間可以儲存任何型別的資料,導致取值時轉換出錯 原因2 每次取值都需要強制轉換,冗餘繁瑣 2.泛型的定義 泛型的本質是乙個引數化的型別 在程式編碼中一些包含引數的類 ...

java基礎 03 泛型

一 泛型 generics 1.所謂泛型 就是變數型別的引數化。類別定義時的邏輯完全一樣,只是裡面成員變數的型別不同 如果需要多個相似的類,需要定義多個檔案,不同的只是變數的類別,而邏輯是完全一樣的 如果使用泛型,只要 在編譯時沒有出現警告,就不會遇到執行時classcastexception 型別...