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闭包不适用于超类的静态final字段全部内容,希望文章能够帮你解决Groovy闭包不适用于超类的静态final字段所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)