我是Java Generics的新手。我必须实现一个通用类型的接口。语法如下:
public interface A{}
public interface B<T extends A>{
public T methodB(T a) ;
}
现在我必须实施B,所以让我说我的班级是C
public class C implements B<T extends A>{}
java编译器不允许我这样使用它。另外我不想使用原始类型。请帮忙。
答案 0 :(得分:8)
应该是
public class C<T extends A> implements B<T>
类型参数在类名后面声明,稍后可以在implements子句中使用。
答案 1 :(得分:3)
如果您的实现类仍然是泛型类型,则必须使用以下语法:
public class C<T extends A> implements B<T> {}
正如 Eran 所解释的那样。
如果C
不是通用的,您只需要为您的界面指定类型参数:
public class C implements B<TypeExtendingA> {}
TypeExtendingA
实施或延伸A
(或A
)