我对Java的泛型不太熟悉。我需要实现一个泛型类型的接口,语法如下:
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编译器不允许我这样使用。而且我不想使用原始类型。请帮忙。
应该是这样的
public class C<T extends A> implements B<T>
类型参数在类名后声明,稍后可以在实现子句中使用。
如果您的实现类仍然是一个通用类型,您需要使用以下语法:
public class C<T extends A> implements B<T> {}
正如Eran所解释的那样。
如果C
不是泛型的,则只需要为您的接口指定类型参数:
public class C implements B<TypeExtendingA> {}
TypeExtendingA
实现或继承 A
(或者是 A
)。