2016-03-01 48 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;