實用價值低,僅僅是用來測試反射的掌握
上**
arrayarr = new array();
//這個arr只能用來儲存string
//若是直接用反射,則可以儲存任意物件
class c = arr.getclass();
method method = c.get("add",object);//由於add()方法本來的引數是泛型 但是class檔案裡面並沒有泛型,所以便是object
//呼叫成員方法時候需要有乙個依附的物件
object obj = c.newinstance();
method.invoke(obj,1);
method.invoke(obj,"aaa");
這樣的話便除去了泛型的限制,但是若是遍歷的話就很難 Java泛型擦除
class person public class test else 上面的例子執行 equal這裡列印出equal的原因,list和list list擦除後的型別都是list,沒有任何區別。其實泛型的class物件都是相同的,泛型化不會改變class屬性的返回值。再看看下面的例子 private...
泛型擦除補償
由於在使用泛型的時候,將會擦除型別引數,而只保留原始型別。所以在使用泛型時,我們不能使用new t 也不能使用instanceof,因為這兩類操作要知道確切的型別。此問題的解決方案有三種 設計模式的使用 簡單工廠 最簡單 工廠方法 最靈活 模板方法 最簡捷 1.簡單工廠 在此方法中,將型別作為引數,...
泛型 泛型類 泛型方法 泛型擦除
1 是什麼?一種允許我們在不確定引數型別時候使用的型別。例如我不知道a方法應該會傳string還是int,我就用個泛型先佔坑。2 為什麼要用泛型?泛型可以在編譯期自動確定具體型別,檢查型別是否匹配,可以提高 的重用率,減少冗餘編碼。3 泛型與object的區別?像上面說的我不知道方法a的引數型別,其...