2016-03-01 45 views
0

因此,我无法找到如何链接2个最终阵列。就像这样:如何链接2个最终阵列

final String[] array1 = new String[4]; 
    final String[] array2 = new String[4]; 

    array1 = array2; 

但是因为两个数组都是最终的,所以我不能做我在上面的例子中所做的。有什么办法可以将array1设置为array2,以便对array1所做的任何更改都会自动反映到array2中?

在此先感谢。

+0

为什么你有两个专用阵列?既然他们是最终的,你只能尝试一些讨厌的反思的东西。 – Tom

+0

此外,即使数组不是最终的,当array1 = array 2时,也会失去对array1及其所有内容的引用。 –

+0

2个引用是最终的,所以不能这样做 – Ramanlfc

回答

1

有什么办法可以将array1设置为array2,以便对array1所做的任何更改都会自动反映到array2中?

自动,而不是。一旦你初始化了array1array2之后,你不能再重新初始化它们,因为它们都是final

但是,您可以手动复制array2的内容为array1

for (int i = 0; i < 4; i++) { 
    array1[i] = array2[i]; 
} 

这将工作,因为修改不保证不变性的final - 它只是确保在一次给一个变量设置基准,它不能再更改。

+0

我想要做的是比我的例子更复杂,我只是试图显示我想要的但要感谢你的帮助,我已经设法了解我现在做错了什么。再次感谢! – Luke

1

如果我们想要array1中的变化反映在array2中,那么我们不需要声明两个不同的数组。我们可以指出array2对array1的引用,它会显示例如:

final String[] array1 = new String[4]; 
final String[] array2 = array1;