Java Generics - 实现和扩展

Shw*_*eta 11 java generics

我想写点像

public class A implements B<T implements C> {}
Run Code Online (Sandbox Code Playgroud)

public abstract class M<I extends P> extends R<I extends P> implements Q<I extends P> {}
Run Code Online (Sandbox Code Playgroud)

但我得到的错误就像多个标记和令牌上的语法错误延伸,预期.请让我知道这样做的正确方法是什么.

Col*_*ert 13

如果在泛型中有接口,则仍然必须使用extends关键字.

在您的情况下,如果您知道T将会是什么:

public class A<T extends C> implements B<T> {}
Run Code Online (Sandbox Code Playgroud)

如果你不这样做,你只需要B使用C类型的工具:

public class A implements B<C> {}
Run Code Online (Sandbox Code Playgroud)

对于第二部分,一旦定义了,I您可以在其他泛型类型中使用它:

public abstract class M<I extends P> extends R<I> implements Q<I> {}
Run Code Online (Sandbox Code Playgroud)

资源:


Boz*_*zho 3

implements通用范围内没有关键字。这只是extends

此外 - 您应该仅在类定义中指定类型参数,而不是在超类型中。IE

public class A<T extends C> implements B<T> {}
Run Code Online (Sandbox Code Playgroud)