在泛型引入之前,如果我們需要產生多個物件,每個物件的邏輯完全一樣,只是物件內的成員變數的型別不同,那麼我們只能建立多個類檔案,給每個類的成員變數設定不同的資料型別。這麼做會導致類的膨脹,重用性太差。
一種方式是對將object作為變數型別,但是需要對獲取的資料進行強制型別轉換,這個過程可能導致型別轉換異常。
另一種方式,泛型是解決上述問題的有效方法。
泛型即通過引數化型別來實現在同乙份**上操作多種資料型別,泛型程式設計是一種程式設計正規化,它利用「引數化型別」將型別抽象化,從而實現更為靈活的復用。泛型類:
//一般用t、k、v代表泛型
class genclass
public t getobj()
public
void
setobj(t obj)
}
泛型例項化:
public static viod main(string args)
泛型類的常規用法:
- 泛型的型別引數可以使泛型類
genclass> genouter=new genclass>();
genclassgeninnter=new genclass();
geninnter.setdata(new student("xiaoming"));
genouter.setdata(genintter);
system.out
.println(genouter.getdata().getdata().tostring);
class genclass2
public
genclass2(k data1,v data2)
public k getdata1()
public v getdata2()
}
public
static
void
main(string args)
class
superclass
public t1 showdata1()
}inte***ce
iinfo
class
subclass
extends
superclass
implements
iinfo
//重寫了父類的方法
public t1 showdata1()
//實現介面的showdata方法
public t2 showdata(t2 data)
}
泛型 泛型類 泛型方法 泛型擦除
1 是什麼?一種允許我們在不確定引數型別時候使用的型別。例如我不知道a方法應該會傳string還是int,我就用個泛型先佔坑。2 為什麼要用泛型?泛型可以在編譯期自動確定具體型別,檢查型別是否匹配,可以提高 的重用率,減少冗餘編碼。3 泛型與object的區別?像上面說的我不知道方法a的引數型別,其...
泛型 (2)泛型類 泛型方法 泛型介面
一 泛型類 定義person類 package cn.itcast.p2.bean public class person implements comparable public person string name,int age public int compareto person p ov...
泛型類,泛型方法,泛型介面
泛型,就是一種不確定的資料型別。如果在類後面加上 這個類就變成了泛型類。這個 t可以使用任意的字母代替。表示定義了一種不確定的資料型別,這種不確定的資料型別必須在使用這個類 比如建立物件 的時候才能確定下來。如果希望縮小泛型的範圍,延後泛型的確定時間,讓泛型在呼叫方法的時候確定,那麼我們可以使用泛型...