gpt4 book ai didi

java - 将子对象和父对象的 Arraylist 传递给同一个方法

转载 作者:行者123 更新时间:2023-11-29 08:26:57 26 4
gpt4 key购买 nike

我有一个扩展了 A 类的 B 类。我如何在 C 类中编写一个方法来接收包含 B 类或 A 类对象的 ArrayList 而无需覆盖?

public class A {
//Some methods here
}

public class B extends A {
//Some methods here
}

public class C {

public Static void main(String[] args){
ArrayList<A> one = new ArrayList<>();
one.add(new A());

ArrayList<B> two = new ArrayList<>();
two.add(new B())

doStuff(one);
doStuff(two);
}

public void doStuff(args){
//go ahead do stuff
}
}

最佳答案

使用带有通配符的泛型表示您将接受 的任何列表 A扩展 A .

public void doStuff(List<? extends A> list) {
...
}

如果您想捕获您要编写的确切列表类型:

public <T extends A> void doStuff(List<T> list) {
...
}

然后你可以使用T在方法里面。如果你不需要 T , 坚持第一种方法。

关于java - 将子对象和父对象的 Arraylist 传递给同一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51985355/

26 4 0