Groovy闭包不适用于超类的静态final字段

前端之家收集整理的这篇文章主要介绍了Groovy闭包不适用于超类的静态final字段前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
class Parent {
    final static String newLine = "*"
}
class Child extends Parent{
    List body = [3,4,5]
    String toString() {
        def str = new StringBuilder()
        body.each { str.append(it + newLine) }
        str
    }
}

def c = new Child()
println c

以上是一个简单的样本来说明问题.它无法使用Eclipse上的Groovy插件进行编译.删除超类字段中的final或static解决问题.但是,我不知道为什么会这样.

http://groovy.codehaus.org/Groovy+Beans
在此链接中,它提到了Groovy中使用的属性和字段的规则.我认为应用的应该是最后一个,即元类.不幸的是,我仍然无法理解这种行为.

在所有版本的Groovy中都会一致地重现该行为.也许有人可以向Groovy团队报告一个错误.我以前从未这样做过.如果有经验的人可以做到这一点会更有效率.

解决方法

这很可能是 http://jira.codehaus.org/browse/GROOVY-5776,比它看起来更难修复

猜你在找的Groovy相关文章