通过在模型类中使用setter保存的数据是重复保存的吗?

时间:2014-09-29 06:54:05

标签: java setter

通过使用setter和getters类,我在设置设置的第一个值时将值设置为MusicDetailsObject(pojo class),然后设置它设置的第二个值,并替换第一个值等等......设置值使用循环:

   for(int k=0;k<songs.length();k++)
                {
                JSONObject songObject = songs.getJSONObject(k);
                //mName.add(songObject.getString("name"));
                mObject.setmName(songObject.getString("name"));
                //mURL .add(songObject.getString("url"));
                mObject.setmURL(songObject.getString("url"));
                //mListId .add(songObject.getString("id"));
                mObject.setmID(songObject.getString("id"));
                mAlbumList.add(mObject);
                }

首次将值设置为

array1{id = 101
name = Jigarthanda}

第二次设定值时,显示如下:

array1{id = 102
name = Mundasupatti}, array1{id = 102
name = Mundasupatti}

所以,请让我知道如何设置个人价值。

提前致谢。

1 个答案:

答案 0 :(得分:2)

问题在于,在循环内部,您永远不会创建mObject的新实例,因此您拥有的唯一实例将被重用。

for(int k=0;k<songs.length();k++){
  JSONObject songObject = songs.getJSONObject(k);
  mObject = new MyObject() // -> NOW you are assigning values to a different instance.
  //mName.add(songObject.getString("name"));
  mObject.setmName(songObject.getString("name"));
  //mURL .add(songObject.getString("url"));
  mObject.setmURL(songObject.getString("url"));
  //mListId .add(songObject.getString("id"));
  mObject.setmID(songObject.getString("id"));
  mAlbumList.add(mObject);
}