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