Java 使用泛型的奇怪绑定mismtatch
我有:Java 使用泛型的奇怪绑定mismtatch,java,generics,Java,Generics,我有: public abstract class HistorizableStatusEntity<S extends Status, O extends IdentifiedEntity> extends IdentifiedEntity public抽象类HistorizableStatusEntity扩展了标识性 具体实施: public class OrderStatusHistory extends HistorizableStatusEntity&l
public abstract class HistorizableStatusEntity<S extends Status,
O extends IdentifiedEntity> extends IdentifiedEntity
public抽象类HistorizableStatusEntity扩展了标识性
具体实施:
public class OrderStatusHistory extends HistorizableStatusEntity<OrderStatus, Order>
public class Order extends StatusableEntity<OrderStatusHistory, OrderStatus>
公共类OrderStatusHistory扩展了HistorizableStatusEntity
现在有:
public abstract class StatusableEntity<H extends HistorizableStatusEntity<S, IdentifiedEntity>,
S extends Status> extends IdentifiedEntity
公共抽象类StatusableEntity扩展了IdentifiedEntity
具体实施:
public class OrderStatusHistory extends HistorizableStatusEntity<OrderStatus, Order>
public class Order extends StatusableEntity<OrderStatusHistory, OrderStatus>
公共类顺序扩展StatusableEntity
java编译器说关于顺序
:
绑定不匹配:类型OrderStatusHistory不是类型StatusableEntity的绑定参数的有效替代品
我不理解这一点,因为OrderStatusHistory扩展了HistorizableStatusEntity>
有什么想法吗?蒂亚
StatusableEntity
需要类型H extensed HistorizableStatusEntity
,而您提供的OrderStatusHistory
扩展为HistorizableStatusEntity
。正如您在这里看到的,正确的类型与StatusableEntity
所期望的不匹配(Order
与IdentifiedIdentity
不匹配) 然后在StatusableHistory
中使用边界。在您的代码片段中,您不允许使用IdentifiedIdentity
的子类,您需要严格的类型匹配您所说的“边界”是什么意思?我的意思是绑定,比如a扩展了B
谢谢。这就是问题所在。