我有一个实现Parcelable的对象,我正在尝试创建该对象的数组。但是,每当我更改数组中的一个元素时,数组中的所有其他元素也会更改为相同的值。
当我创建一个这样的数组然后设置第一个元素时,
MyClass[] array = new myClass[5];
array[0] = new MyClass();
数组中的所有元素都将采用 array[0] 的值。这是可包裹对象的属性,我只是做错了事情吗?有没有我应该使用的方法?
这不是可分包的问题,您在所有数组索引中分配相同的对象,而不是创建新的 MyClass(( 对象。
如果要独立更改每个数组对象,则必须通过调用构造函数或克隆第一个对象来创建新对象。
示例:此示例可用作参考。
MyClass[] array = new myClass[5];
array[0] = new MyClass();
array[1] = new MyClass();
array[2] = new MyClass();
array[3] = new MyClass();
array[4] = new MyClass();