class GroovyHello {
public String execute() {
println("Test String is " + TEST)
}
private static final String TEST = "Test"
}
Groovy V.1.6.3 中上述代码段的输出是
Test String is Test
Groovy V.1.8.6 中上述代码段的输出是
Test String is null
如果我将声明修改为具有静态(
private static String TEST = "Test"
)或最终(private final String TEST = "Test"
),但不能同时具有两者,则上面的代码段将成功打印字符串。
最佳答案
我的理论是,由于对象 Static 和 Private 然后您无权访问它,因为它是一个单独的对象。但是,如果它只是私有(private)的,那么您的方法就是对象的一部分并且可以访问它。如果它只是静态的,那么您可以访问该字段 - 默认情况下该字段是公共(public)的。
关于groovy - Groovy 中 static 和 final 修饰符的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9769597/