我有以下类和接口:
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>{}