繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM