我有两个必须getMethodes的类,它们返回两个实现接口的对象的 ArrayList
public class MyClass1 implements IMyClasses<MyObject1>{
public ArrayList<MyObject1> getMyObject() { ... }
}
public class MyClass2 implements IMyClasses<MyObject1>{
public ArrayList<MyObject1> getMyObject() { ... }
}
MyObject1 和 MyObject2 实现 IMyObject
在我的 ManagerClass 中,我想实现一个可以返回任何 IMyObject 实现的函数
ArrayList<IMyObject) get() {
if (...) {
return new MyClass1().getMyObject();
} else {
return new MyClass2().getMyObject();
}
}
在我在 MyClass1 和 MyClass2 上引入 Generic 典型之前,它运行良好,但是使用Generic我需要得到正确的对象如果需要,我不能返回具有返回类型接口的对象吗?
一些帮助?
编辑这是一个完整的工作示例,诀窍是{@ 1}} thx到@ Alexander.Furer
<? extend IMyObject>
答案 0 :(得分:1)
ArrayList<MyObject1>
不属于ArrayList<IMyObject>
类型,顺便说一句,你有一个拼写错误:ArrayList<IMyObject)
将ManagerClass的get
方法声明为:
ArrayList<? extends IMyObject> get() {
}