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編譯器在編譯期間強制執行不可變性。