Java Generic:Generic可以扩展另一个Generic类吗?

Zan*_*dar 3 java generics inheritance

在这里,这是我的问题,我有三个摘要类,都是通用的,我想要这样的东西:

public abstract class AbstracOne< T extends AbstractTwo< K extends AbstractThree<K> >>>
Run Code Online (Sandbox Code Playgroud)

这不起作用,我得到以下错误(在第二个扩展):

令牌"extends"的语法错误,预期.

但是,如果我使用以下代码,它正在工作:

public abstract class AbstracOne< T extends AbstractTwo< ? extends AbstractThree<?> >>>
Run Code Online (Sandbox Code Playgroud)

那么,使用K和有什么区别?

非常感谢你

Tan*_*til 6

输入参数vs Type参数

您可以阅读Angelica Langer的这个优秀常见问题解答来清除这一区别.

泛型类具有类型参数,当您使用泛型类时,这些参数将替换为类型参数.

类型参数可以有约束.类型参数可以是完全限定类型或以前定义的类型参数.

因此,K如果已经定义,则可以使用.您还可以在定义约束时添加约束.

public abstract class AbstractOne<K extends AbstractThree<K>, T extends AbstractTwo<K>>
Run Code Online (Sandbox Code Playgroud)

祝好运.