Eclipse无法识别传递扩展的泛型类

时间:2014-06-11 17:11:10

标签: java eclipse generics

在我的项目中,我有一个抽象的自定义对象:

public abstract class CustomObject {
    //abstract class goodness
}

在另一个类中,我使用了一些扩展CustomObject的不同类,并且正在编写一个方法,该方法可以将特定的类扩展为参数,填充公共字段,然后将其作为结果反出。

该方法现在看起来像这样:

public <T> T setCommonProperties( Class<T extends CustomObject> clazz, Identifier ident ) {
    CustomObject populate = clazz.newInstance();
    //populate populate
}

这看起来与我在搜索互联网时发现的内容一致,但是eclipse将extends标记为不正确。当我将鼠标悬停在扩展上时,它会给我Syntax error on token "extends", , expected

有没有人知道为什么eclipse会这样做?

1 个答案:

答案 0 :(得分:2)

这是一个Java错误; Eclipse正确地将其标记为错误。您的代码具有不正确的Java泛型语法。 extends上限属于开头的声明,而不是类型参数的使用。尝试

public <T extends CustomObject> T setCommonProperties( Class<T> clazz, Identifier ident )