6
當我執行在常規控制檯下面的代碼,我得到一個groovy.lang.ReadOnlyPropertyException
。這與預期的一樣,因爲財產x不可能改變(因爲ClassA
是不可改變的)。@Immutable在groovy中如何工作?
import groovy.transform.Immutable
@Immutable class ClassA {
int x
}
def a = new ClassA(x: 5);
a.x = 1
但如果改變訪問修飾符私人的x
變量,那麼我可以在常規控制檯執行此:
import groovy.transform.Immutable
@Immutable class ClassA {
private int x
}
def a = new ClassA(x: 5);
a.x = 1
println(a.x)
這是爲什麼?爲什麼添加的private
訪問修飾符使得ClassA
可變?