处理泛型和继承时绑定不匹配错误

时间:2017-07-17 11:25:15

标签: java generics inheritance

我有以下类和接口:

public class Entity {}
public interface EntitySet<T extends Entity> {}

现在我想编写实现EntitySet接口的类并重用类型T。我试过以下:

public class Method1EntitySet<T> implements EntitySet<T extends Entity>{}

这给了我错误:

  

令牌上的语法错误&#34;扩展&#34;,预期

所以我试过了:

public class Method1EntitySet<T> implements EntitySet<T>{}

这给了我错误:

  

绑定不匹配:类型T不是EntitySet类型的有界参数的有效替代

这有效:

public class Method1EntitySet<T> implements EntitySet{} 

但它给了我警告:

  

EntitySet是一种原始类型。应参数化对泛型类型EntitySet的引用。

另外我想,T以上不会被迫延长Entity

我该如何完成这项工作?

1 个答案:

答案 0 :(得分:4)

类型绑定应该是声明泛型类型参数T的位置:

public class Method1EntitySet<T extends Entity> implements EntitySet<T>{}