在Java中实现通用接口

4

我对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编译器不允许我这样使用。而且我不想使用原始类型。请帮忙。

2个回答

8

应该是这样的

public class C<T extends A> implements B<T>

类型参数在类名后声明,稍后可以在实现子句中使用。


3

如果您的实现类仍然是一个通用类型,您需要使用以下语法:

public class C<T extends A> implements B<T> {}

正如Eran所解释的那样。

如果C不是泛型的,则只需要为您的接口指定类型参数:

public class C implements B<TypeExtendingA> {}

TypeExtendingA 实现或继承 A(或者是 A)。


但这不会限制范围吗? - Neelam
这取决于你实际需要什么。如果你需要一个通用的实现,选择第一种选项... - davioooh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接