Java不可變物件


在建立狀態後無法更改其狀態的物件稱為不可變物件。一個物件不可變的類稱為不可變類。不變的物件可以由程式的不同區域共用而不用擔心其狀態改變。

不可變物件本質上是執行緒安全的。

範例

以下程式碼建立了不可變類的範例。

public  class  IntWrapper {
    private  final  int  value;
    public IntWrapper(int value) {
        this.value = value;
    }
    public int  getValue() {
        return value;
    }
}

下面顯示如何建立IntWrapper類的物件:

IntWrapper wrapper  = new IntWrapper(101);

在這一點上,wrapper物件儲存101值,並且沒有辦法改變它。因此,IntWrapper類是一個不可變的類,它的物件是不可變的物件。
但是,最好將所有範例變數宣告為final,以便Java編譯器在編譯期間強制執行不可變性。