Как использовать Перечисление в чашах Грааля (не в доменном классе)

Я хочу использовать Перечисление для представления некоторых значений выбора. В /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)

Кажется, что существует что-то не так в способе получить доступ к значению Перечисления, но я не знаю что.

7
задан cdeszaq 21 December 2012 в 16:41
поделиться

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 }
}
15
ответ дан 6 December 2019 в 14:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: