Ren*_*n S 2 java arrays android
我有一个很奇怪的问题。在活动中,我声明了两个数组
private String original[] = new String[100];
private String changed[] = new String[100];
Run Code Online (Sandbox Code Playgroud)
然后,我将值分配给这两个数组OnCreate:
Bundle extras = getIntent().getExtras();
if (extras != null) {
original = extras.getStringArray("sentArray");
changed = original;
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我更改changed数组成员的值,则original数组也将更改该成员。
例如,我做完之后
changed[0] = "New value";
Run Code Online (Sandbox Code Playgroud)
的值original[0]也是“新值”。
这样怎么可能?这是错误吗?
小智 7
changed = original;
Run Code Online (Sandbox Code Playgroud)
该行将“更改”设置为“原始”,因此它们是具有相同指针的相同数组。您需要复制数组,而不是将设置更改为等于原始值。
您可以尝试使用System.arraycopy()
| 归档时间: |
|
| 查看次数: |
2117 次 |
| 最近记录: |