泛型,編寫的**可以被很多不同型別的物件重用。簡單泛型類的定義:
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 型別...