问题
不使用 static
关键字的示例 1 也可以工作。
使用 static
关键字的示例 2 不起作用。
为什么顶级类StaticClass
不能是static
? eclipse 说:
Groovy:The class 'StaticClass' has an incorrect modifier static.
类StaticInnerClass
可以修改为static
。
示例 1 作品
开始.groovy
assert "static field" == StaticClass.StaticInnerClass.staticField
StaticClass.groovy
class StaticClass { // Just "class", no "static" modifier
static class StaticInnerClass {
static String staticField = "static field"
}
}
示例 2 不起作用
开始.groovy
assert "static field" == StaticClass.StaticInnerClass.staticField
StaticClass.groovy
static class StaticClass { // Modifier "static" does not work
static class StaticInnerClass {
static String staticField = "static field"
}
}
可能相关的问题
版本
- Eclipse 3.8.1
- Groovy-Eclipse 插件 2.8.0
最佳答案
只有嵌套类可以是静态的(就像 Java 中一样)。
如果您只是不希望您的类可实例化,您可以使用 static 关键字限定类中的各个定义,例如:
class MyClass {
static public count = 1
static incr() {
count = count + 23
}
}
关于groovy - 为什么这个顶级 Groovy 类不能是静态的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21776421/