gpt4 book ai didi

java - 将多个对象添加到 ArrayList 会导致仅最后一个项目被多次添加

转载 作者:行者123 更新时间:2023-12-01 22:53:43 24 4
gpt4 key购买 nike

我正在尝试将对象添加到 ArrayList,但似乎每当我调用 add 方法时,列表都会仅由我添加的最后一个对象填充。

这是我添加的方法:

MyObject testObject1 = new MyObject();
testObject1.setType(0);
MyList.myList.add(testObject1);
MyObject testObject2 = new MyObject();
testObject2.setType(1);
MyList.myList.add(testObject2);

MyList 是一个具有单个 ArrayList 的类,其定义如下:

public static ArrayList<MyObject> myList = new ArrayList<MyObject>();

MyObject 是一个具有一些成员变量和方法的类:

static int type;
public void setType(int inType) {
type = inType;
}

然后我列出了 MyList.myList 中的对象,如下所示:

for (int i=0; i<MyList.myList.size(); i++) {
Log.d(TAG, "Type is " + MyList.myList.get(i).getType());
}

它列出了 2 个对象,但类型始终为 1。

怎么了?

谢谢。

最佳答案

因为setTypestatic,与Object的状态无关

MyObject.setType = 1;

MyObject 类中的 setType 声明中删除 static 关键字,并为每个实例设置其值

<小时/>

查看

关于java - 将多个对象添加到 ArrayList 会导致仅最后一个项目被多次添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24380241/

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