【发布时间】:2015-05-20 00:40:25
【问题描述】:
我正在尝试返回一个对象,该对象应该是 IClass 的实现,其泛型类型是 IType 的实现。
public IClass<IType> createClass()
{
return new ActualClass();
}
我要返回的实际类继承自Class(抽象),泛型类型为ActualType:
public class ActualClass extends Class<ActualType>
抽象Class对象实现了IClass接口,可以有任何扩展IType的类型
public abstract class Class<T extends IType> implements IClass<T>
ActualType 只是实现了 IType 接口
public final class ActualType implements IType
我在编译时收到“类型不匹配:无法从 ActualClass 转换为 IClass”错误。我不明白为什么,因为 ActualClass 实现了 IClass(间接通过 Class)而 ActualType 实现了 IType。
如何重新排列它以使其正常工作?我做错了什么或误解了什么?
理想情况下,我仍然想要一个接口 IClass 和 IType,一个抽象实现 Class,然后是一个 ActualClass,它扩展了抽象 Class 并具有实现了 IType 的特定类型。
【问题讨论】: