2011-03-22 113 views
2

有像​​如何从基础通用类继承

基genric类,我发现我可以使用

ClassDerived extends ClassBase 

ClassDerived<T> extends Classbase<T> 

所以基本上这意味着我可以删除泛型在派生类中,是吗?

回答

2

由于所有泛型类型信息都在编译过程中被擦除,所以当然可以这样做。但是,除非警告被关闭或禁止,否则大多数编译器会生成警告。例如,如果我编写class Foo extends HashMap {},Eclipse报告:“HashMap是原始类型,对泛型类型HashMap的引用应该参数化”

1

您可以扩展泛型类的原始版本,这是正确的。当然你的第二个例子:

ClassDerived<T> extends Classbase 

......实际上重新引入了一个类型参数。