【问题标题】:How to use Enum in grails (not in domain class)如何在 grails 中使用枚举(不在域类中)
【发布时间】:2010-06-16 02:59:57
【问题描述】:

我想使用 Enum 来表示一些选择值。在/src/groovy 文件夹中,在包com.test 下,我有这个枚举:

package com.test

public  enum TabSelectorEnum {
  A(1), B(2)

  private final int value
  public int value() {return value}

}

现在,我正在尝试从控制器访问它,例如:

TabSelectorEnum.B.value()

但它会引发异常:

Caused by: org.codehaus.groovy.runtime.InvokerInvocationException: java.lang.NoClassDefFoundError: Could not initialize class com.test.TabSelectorEnum

我做错了什么?


更新:我清理并重新编译后,错误代码变为:

groovy.lang.GroovyRuntimeException: Could not find matching constructor for: com.test.TabSelectorEnum(java.lang.String, java.lang.Integer, java.lang.Integer)

访问 Enum 的值的方式似乎有问题,但我不知道是什么。

【问题讨论】:

    标签: grails groovy enums


    【解决方案1】:

    您没有为 int 值定义构造函数:

    package com.test
    
    enum TabSelectorEnum {
       A(1),
       B(2)
    
       private final int value
    
       private TabSelectorEnum(int value) {
          this.value = value
       }
    
       int value() { value }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-26
      相关资源
      最近更新 更多