我看到了這個NullPointerException on synchronized statement。在null對象上使用syncrhonized時獲取NullPointerException
代碼:
synchronized(a){
a = new A()
}
所以根據上述答案我已經理解的是,不可能使用synchronized關鍵字上空引用。
所以我改變了我的代碼如下:
synchronized(a = new A()){}
,但我不知道這是我原來的代碼是否一致?
更新:
我想要實現的是鎖定的a
(a = new A()
)創建
什麼是你想在這裏實現? – Arvind
我會說這是一個糟糕的主意,因爲每次你點擊'synchronized'塊時,你都會創建另一個'A'的實例,所以沒有任何東西被阻塞。 「鎖定」對象需要在線程之間共享。可以使用'static final Object'作爲通用監視器鎖,這將是一個好主意 – MadProgrammer
沒有_null object_。 – Seelenvirtuose