gpt4 book ai didi

java - 从 ArrayLists 返回多个对象类型

转载 作者:行者123 更新时间:2023-11-30 07:04:07 24 4
gpt4 key购买 nike

基本上我有一个类“A”,其他类“B”、“C”和“D”扩展。这些类型的对象将具有不一定唯一的字符串名称。

public class A {
//some code
}


public class B extends A {
// some code
}

因此类 C 和 D 也扩展了 A,与 B 相同。

接下来我有一个 holder 类,它有一个数组列表来保存 B、C 和 D 对象(这里没有 A 对象)。

public class Holder {
List<A> container;

public Holder() {
container = new ArrayList<A>();
}

public A getItemByName(String s) {
//return the first object with s == name, or return null
}

public A getItemByType(Class c) {
//return the first object that matches the class or return null
}
}

这些函数可以成功地挑选出所需的对象,但我需要将对象返回为 B、C 和 D 类型。有没有办法做到这一点,如果有,怎么做?

最佳答案

你可以做到

public <T extends A> T getItemByType(Class<T> c) {
for(Object o : container){
if(c.isInstance(o)){
return c.cast(o);
}
}
return null;
}

那么你就可以做

B found = holder.getItemByType(B.class);

关于java - 从 ArrayLists 返回多个对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27829737/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com