Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将多个对象添加到ArrayList只会导致最后一项被添加多次_Java_Android_Arraylist - Fatal编程技术网

Java 将多个对象添加到ArrayList只会导致最后一项被添加多次

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);

我试图将对象添加到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>();
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
              变量相同,该变量不是每个对象,而是每个加载的类,因此所有实例都共享值,请重新阅读我的答案