[英]Bound mismatch error while dealing with generics and inheritance
我有以下类和接口:
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>{}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.