grails / groovy访问静态变量时的NoClassDefFoundError

时间:2012-07-18 12:42:16

标签: grails groovy static

我觉得这对你来说很简单:

我有一个Controller,我想在其中访问另一个类XY(groovy类,位于包src / groovy中)中的静态字段。但这会得到一个NoClassDefFoundError。

public class XY{ public static final String a = "something" }

in controller: XY.a causes error!!!

与XY类相同的包中的其他类不会导致问题。

我做错了什么?

2 个答案:

答案 0 :(得分:1)

您似乎已经过度简化了示例。 NoClassDefFoundError ClassNotFoundException相同。当班级不在时,会发生ClassNotFoundExceptionNoClassDefFoundError在班级出现时发生,但它引用的东西不是。所以修复起来要复杂得多。

XY包是否与文件夹结构匹配(即,如果它位于“com.foo”包中,是否在src / groovy / com / foo中)?

尝试运行'grails clean'并再次运行它 - 可能会有一些编译器混淆并重新编译所有内容都可以修复它,或显示真正的问题。

答案 1 :(得分:0)

我发现了问题所在:

编译类XY,但我尝试将“”分配给(意外声明的)静态整数。

这就是为什么整个班级无法初始化并且错误发生的原因。

是否有任何属性可以将编译器设置为打印警告?

感谢您的提示!