Java 将多个对象添加到ArrayList只会导致最后一项被添加多次
我试图将对象添加到ArrayList中,但似乎每当我调用add方法时,列表中只填充我添加的最后一个对象 以下是我的补充:Java 将多个对象添加到ArrayList只会导致最后一项被添加多次,java,android,arraylist,Java,Android,Arraylist,我试图将对象添加到ArrayList中,但似乎每当我调用add方法时,列表中只填充我添加的最后一个对象 以下是我的补充: MyObject testObject1 = new MyObject(); testObject1.setType(0); MyList.myList.add(testObject1); MyObject testObject2 = new MyObject(); testObject2.setType(1); MyList.myList.add(testObject2);
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>();
for (int i=0; i<MyList.myList.size(); i++) {
Log.d(TAG, "Type is " + MyList.myList.get(i).getType());
}
然后我列出MyList.MyList中的对象,如下所示:
public static ArrayList<MyObject> myList = new ArrayList<MyObject>();
for (int i=0; i<MyList.myList.size(); i++) {
Log.d(TAG, "Type is " + MyList.myList.get(i).getType());
}
for(int i=0;i,因为setType
是static
,与对象的状态无关
MyObject.setType = 1;
从MyObject
类中的setType
的delcaration中删除static
关键字,并设置每个实例的值
见
因为
setType
是静态的
,与对象的状态无关
MyObject.setType = 1;
从MyObject
类中的setType
的delcaration中删除static
关键字,并设置每个实例的值
见
因为
setType
是静态的
,与对象的状态无关
MyObject.setType = 1;
从MyObject
类中的setType
的delcaration中删除static
关键字,并设置每个实例的值
见
因为
setType
是静态的
,与对象的状态无关
MyObject.setType = 1;
从MyObject
类中的setType
的delcaration中删除static
关键字,并设置每个实例的值
见
您不应该从实例方法设置静态变量
int type;
public void setType(int inType) {
type = inType;
}
如上所述进行更改将解决您的问题
您不应该从实例方法设置静态变量
int type;
public void setType(int inType) {
type = inType;
}
如上所述进行更改将解决您的问题
您不应该从实例方法设置静态变量
int type;
public void setType(int inType) {
type = inType;
}
如上所述进行更改将解决您的问题
您不应该从实例方法设置静态变量
int type;
public void setType(int inType) {
type = inType;
}
按上述方式更改将解决您的问题。您好,我在原始发布的代码中输入了一个错误。我实际上没有调用MyObject.setType(),而是调用了实例的setType,即testObject1.setType(0)和testObject2.setType(1)发布setType方法全文。它在MyObject类中。这与您为static
变量赋值相同,它不是每个对象而是每个加载的类,因此所有实例都共享值,请重新阅读我的回答。我在原始发布的代码中输入了一个错误。我实际上没有调用MyObject.setType(),但调用了实例的setType,即testObject1.setType(0)和testObject2.setType(1)发布setType方法全文。它在MyObject类中。这与您为static
变量赋值相同,它不是每个对象而是每个加载的类,因此所有实例都共享值,请重新阅读我的回答。我在原始发布的代码中输入了一个错误。我实际上没有调用MyObject.setType(),但调用了实例的setType,即testObject1.setType(0)和testObject2.setType(1)发布setType方法全文。它在MyObject类中。这与您为static
变量赋值相同,它不是每个对象而是每个加载的类,因此所有实例都共享值,请重新阅读我的回答。我在原始发布的代码中输入了一个错误。我实际上没有调用MyObject.setType(),但调用了实例的setType,即testObject1.setType(0)和testObject2.setType(1)发布setType方法full bodyDone。它在MyObject类中。这与将值赋给static
变量相同,该变量不是每个对象,而是每个加载的类,因此所有实例都共享值,请重新阅读我的答案