如果您在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是什么意思?
谢谢,
唐
解决方法
看起来这可能是一个Groovy错误:
> http://jira.codehaus.org/browse/GROOVY-1628
> http://jira.codehaus.org/browse/GROOVY-2752
我不认为val应该在初始化后分配.