gpt4 book ai didi

java - 将 Java ArrayList 转换为 ArrayList
转载 作者:塔克拉玛干 更新时间:2023-11-03 04:22:24 24 4
gpt4 key购买 nike

我正在尝试将 SomeClass 类的 ArrayList 转换为 Object 类的 ArrayListObject 的这个新的 ArrayList 将被传递给一个函数。我目前做了以下事情:

// convert ArrayList<SomeClass> to generic ArrayList<Object>

Object[] objectArray = someClassList.toArray();
ArrayList<Object> objects = new ArrayList<Object>();

for (int i = 0; i < objectArray.length; i++) {
objects.add(objectArray[i]);
}

someFunction(objects);

public void someFunction(ArrayList<Object> objects) {
// do something with objects
}

是否有更有效或“标准”的方法来做到这一点?首先我做的是“错的”吗?

将其转换为 Object 类的 ArrayList 的目的是我创建了一个外部库来处理通用 ArrayList对象

最佳答案

如果您能够将函数的签名更改为采用 ArrayList<? extends Object> objectsArrayList<?> objects (或者更好, List 而不是 ArrayList ),你将能够通过你的 ArrayList<SomeClass>直接。

原因ArrayList<SomeClass> 不是 ArrayList<Object>那是ArrayList<Object>吗?会接受你add() 任何 Object进入它,这不是你可以用 ArrayList<SomeClass> 做的事情.另一方面,ArrayList<? extends Object>将允许您从列表中检索元素,但不能添加元素,因此 ArrayList<SomeClass>可以安全地分配给它。

关于java - 将 Java ArrayList<Custom Class> 转换为 ArrayList<Object>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33900418/

24 4 0