我有以下类和接口:

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


现在,我想编写实现EntitySet接口并重用类型T的类。我尝试了以下操作:

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


这给我错误:


  令牌“扩展”的语法错误,预期


所以我尝试了:

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


这给我错误:


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


这有效:

public class Method1EntitySet<T> implements EntitySet{}


但是它给了我警告:


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


我也猜想,在T之上不是被强制扩展Entity

我应该怎么做呢?

最佳答案

类型绑定应在声明通用类型参数T的位置:

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

10-08 13:01