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
以上是说明问题的一个简单示例。它无法使用Groovy plugin
on编译Eclipse
。删除final
或者static
在领域中的超类解决了这个问题。但是,我不知道为什么会这样。
http://groovy.codehaus.org/Groovy+Beans 在这个链接中,它提到了 Groovy 中使用的属性和字段的规则。我想应用的应该是最后一个,即元类。不幸的是,我仍然无法理解这种行为。
该行为在所有版本的 Groovy 中都一致地重现。也许有人可以向 Groovy 团队报告一个错误。我以前从来没有这样做过。如果有经验的人能做到这一点会更有效率。