如果在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()
在Java中,此代码无法编译,因为在构造函数运行后无法分配final
引用。我知道对于属性,final
表示该属性不能在外部类中更改,但标记私有字段final
是什么意思?
谢谢, 唐
答案 0 :(得分:2)
看起来这可能是一个Groovy错误:
我不认为val
在初始化后应该可以分配。