2011-03-22 116 views
2

有像​​如何從基礎通用類繼承

基genric類,我發現我可以使用

ClassDerived extends ClassBase 

ClassDerived<T> extends Classbase<T> 

所以基本上這意味着我可以刪除泛型在派生類中,是嗎?

回答

2

由於所有泛型類型信息都在編譯過程中被擦除,所以當然可以這樣做。但是,除非警告被關閉或禁止,否則大多數編譯器會生成警告。例如,如果我編寫class Foo extends HashMap {},Eclipse報告:「HashMap是原始類型,對泛型類型HashMap的引用應該參數化」

1

您可以擴展泛型類的原始版本,這是正確的。當然你的第二個例子:

ClassDerived<T> extends Classbase 

......實際上重新引入了一個類型參數。