我遇到了一些问题,我无法理解为什么它不起作用。 我有一个家长班:
public abstract class Parent {
...
}
和2个子课程:
public class Child1 extends Parent {
...
}
public class Child2 extends Parent {
...
}
我有一个方法,它正在使用子列表。但它应该同时使用Child1和Child2类型,所以我认为它应该工作:
public static void doSomething(List<Parent> list) {
...
}
这就是我所说的:
List<Child1> children = dao.getChildren("1");
doSomething(children);
List<Child2> children2 = dao.getChildren("2");
doSomething(children2);
但它不起作用,它显示了这个错误:
The method doSomething(List<Parent>) in the type MyClass is not applicable for the arguments (List<Child1>)
The method doSomething(List<Parent>) in the type MyClass is not applicable for the arguments (List<Child2>)
我怎么能写这段代码?
答案 0 :(得分:5)
哦,我做到了!此代码适用于doSomething方法:
public static void doSomething(List<? extends Parent> list) {
...
}