我在Java中理解「final」的概念時有點麻煩。java中的「最終」和複製2D數組
我有如下的類:
public class MyClass
{
private int[][] myArray; // intended to be changed
private final int[][] MYARRAY_ORIGINAL; // intended to be unchangable
public MyClass(int[][] array)
{
myArray = array;
MYARRAY_ORIGINAL = array;
}
}
我的理解是在「最終」會讓MYARRAY_ORIGINAL只讀。但我試過編輯myArray,並且它也編輯了MYARRAY_ORIGINAL。我的問題是,在這種情況下,「最終」究竟做了什麼?爲了額外的功勞,我怎樣才能將通過構造函數傳遞的數組複製到MYARRAY_ORIGINAL中,以便我可以有2個數組,一個可以編輯,另一個可以保留?
謝謝先進。
謝謝你的迴應Luiggi。另一個快速跟進問題,你認爲我應該怎麼做才能實現兩個數組,一個是編輯和一個原創?有沒有比循環2D數組和複製所有值更方便的方法? –
@DavisSmith使用最後一次編輯中顯示的不可修改列表,或者爲不可修改的數組創建類包裝,並確保此類永遠不會修改數組元素。如果您想要簡單的方法,請使用第一個選項,如果您不能使用'List'接口,請使用第二個選項。 –