如果在Groovy控制台中运行以下代码,则打印"8"
class F {
private final Integer val = 2
def set(v) {val = v}
def print() {println val}
}
def f = new F()
f.set(8)
f.print()
Run Code Online (Sandbox Code Playgroud)
在Java中,此代码无法编译,因为final在构造函数运行后无法分配引用.我知道对于属性,final表示该属性不能在类外部更改,但标记私有字段是什么意思final?
谢谢,唐
看起来这可能是一个 Groovy 错误:
我不认为val初始化后应该可以分配。