Java Immutable(不可變)對象

2018-01-18 17:41 更新

Java面向?qū)ο笤O(shè)計(jì) - Java不可變對象


在創(chuàng)建狀態(tài)后無法更改其狀態(tài)的對象稱為不可變對象。

一個對象不可變的類稱為不可變類。

不變的對象可以由程序的不同區(qū)域共享而不用擔(dān)心其狀態(tài)改變。

不可變對象本質(zhì)上是線程安全的。

例子

以下代碼創(chuàng)建了不可變類的示例。

public  class  IntWrapper {
    private  final  int  value;

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

注意

這是如何創(chuàng)建IntWrapper類的對象:

IntWrapper wrapper  = new IntWrapper(101);

在這一點(diǎn)上,包裝器對象保持101,并且沒有辦法改變它。

因此,IntWrapper類是一個不可變的類,它的對象是不可變的對象。

最好將所有實(shí)例變量聲明為final,這樣Java編譯器將在編譯期間強(qiáng)制實(shí)現(xiàn)不可變性。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號