泛型:令牌上的语法错误"扩展",预期

时间:2017-03-07 04:56:15

标签: java generics

Error in extends

我有一个这样的类定义。

 public abstract class OptionList<X extends OptionList<X, T>, T extends OptionListItem<X, T>>
extends CommonEntity<OptionList<X, T>>

另一个类SecuredBean:

public abstract class SecuredBean<T extends CommonEntity<T>>

现在还有一个类,我需要扩展SecureBean并将OptionList作为入站参数传递,如:

public class OptionListBean extends SecuredBean<OptionList<X extends OptionList<X, T>, T extends OptionListItem<X, T>>> {

这里给出错误,说明令牌上的语法错误延伸,预期。

我在这里做错了什么。

感谢。

1 个答案:

答案 0 :(得分:2)

您的OptionListBean不是通用类,但在定义中使用XT。这是错误的。由于SecuredBean未将精确类作为模板参数,因此需要使OptionListBean成为通用类。

此代码为我编译:

class OptionListItem<X, T>{}

class CommonEntity<T>{}

abstract class OptionList<X extends OptionList<X, T>, T extends OptionListItem<X, T>> extends CommonEntity<OptionList<X, T>> {}

abstract class SecuredBean<T extends CommonEntity<T>>{}

class OptionListBean<X extends OptionList<X, T>, T extends OptionListItem<X, T>> extends SecuredBean<OptionList<X, T>> {}

我不知道这些课程的目的,因此不能说我的建议对你的案例有用。