Java 处理泛型和继承时出现绑定不匹配错误
我有以下类和接口:Java 处理泛型和继承时出现绑定不匹配错误,java,generics,inheritance,Java,Generics,Inheritance,我有以下类和接口: public class Entity {} public interface EntitySet<T extends Entity> {} 这给了我一个错误: 标记“扩展”上的语法错误,应为 所以我试着: public class Method1EntitySet<T> implements EntitySet<T>{} 公共类Method1EntitySet实现EntitySet{} 这给了我一个错误: 绑定不匹配:类型T不是类型
public class Entity {}
public interface EntitySet<T extends Entity> {}
这给了我一个错误:
标记“扩展”上的语法错误,应为
所以我试着:
public class Method1EntitySet<T> implements EntitySet<T>{}
公共类Method1EntitySet实现EntitySet{}
这给了我一个错误:
绑定不匹配:类型T不是类型EntitySet的绑定参数的有效替代品
这项工作:
public class Method1EntitySet<T> implements EntitySet{}
公共类Method1EntitySet实现EntitySet{}
但它给了我警告:
EntitySet是原始类型。对泛型类型EntitySet的引用应参数化
我还想,上面的T
并没有被强制扩展实体
我应该如何完成此操作?类型绑定应该在声明泛型类型参数
T
的位置:
public class Method1EntitySet<T extends Entity> implements EntitySet<T>{}
公共类Method1EntitySet实现EntitySet{}
类型绑定应该在声明泛型类型参数T
的位置:
public class Method1EntitySet<T extends Entity> implements EntitySet<T>{}
公共类Method1EntitySet实现EntitySet{}
如果我想指定T
的类型,而不仅仅是T扩展实体
?公共类方法1EntitySet实现EntitySet{}
。如果您正在指定它,则不再需要类型变量。@如果是这样,您将无法在implements EntitySet
子句中使用t。您不明白。你是说@AndyTurner错了吗。他说的话似乎起作用了。@anir也许我没有听你的评论。如果您根本不想使用t,可以按照Andy的建议来做。如果我想指定t
的类型,而不仅仅是t扩展实体
?公共类方法1EntitySet实现EntitySet{}
,该怎么办。如果您正在指定它,则不再需要类型变量。@如果是这样,您将无法在implements EntitySet
子句中使用t。您不明白。你是说@AndyTurner错了吗。他说的话似乎起作用了。@anir也许我没有听你的评论。如果你根本不想使用t,你可以按照安迪的建议去做。