加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何在grails中使用Enum(不在域类中)

发布时间:2020-12-14 16:32:51 所属栏目:大数据 来源:网络整理
导读:我想使用Enum来表示一些选择值.在/ src / groovy文件夹中,在com.test包下,我有这个枚举: package com.testpublic enum TabSelectorEnum { A(1),B(2) private final int value public int value() {return value}} 现在,我试图从控制器访问它,如: TabSelect
我想使用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的价值方面似乎有些不对劲,但我不知道是什么.

解决方法

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

package com.test

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

   private final int value

   private TabSelectorEnum(int value) {
      this.value = value
   }

   int value() { value }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读