为什么这个顶级Groovy类不能是静态的?

时间:2014-02-14 10:11:56

标签: groovy

问题

没有static关键字的示例1可以使用。

使用static关键字的示例2不起作用。

为什么顶级课程StaticClass不能static? Eclipse说:

  

Groovy:类'StaticClass'的修饰符不正确。

课程StaticInnerClass可以修改为static

示例1有效

Start.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不起作用

Start.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"
    }
}

可能相关的问题

groovy static class

版本

  • Eclipse 3.8.1
  • Groovy-Eclipse插件2.8.0

1 个答案:

答案 0 :(得分:5)

只有嵌套类可以是静态的(就像在Java中一样)。

如果您只是不希望您的类可以实例化,您可以使用static关键字限定类中的各个定义,例如:

class MyClass {

  static public count = 1

  static incr() {
    count = count + 23
  }
}