Как использовать поле перечисления в аннотациях в JavaJAVA

Программисты JAVA общаются здесь
Anonymous
Как использовать поле перечисления в аннотациях в Java

Сообщение Anonymous »

У меня есть собственное перечисление ErrorMessages, просто:

Код: Выделить всё

public enum ErrorMessages {
NO_USER(1004, "User not found"),
UNKNOWN_MODULE(1006, "Module unknown"),
INCORRECT_DATE(1009, "Incorrect date");

public final int code;
private final String messageEng;

ErrorMessages(int code, String messageEng) {
this.code = code;
this.messageEng = messageEng;
}

public int getCode() {
return code;
}

public String getMessageEng() {
return messageEng;
}
}
И я хочу передать код ошибки в мой метод API json-rpc следующим образом:

Код: Выделить всё

@JsonRpcMethod("MyMethod")
@JsonRpcErrors(@JsonRpcError(exception = UserNotFoundException.class, code = ErrorMessages.NO_USER.getCode()))
boolean myMethod(
@JsonRpcParam("userId") Integer userId, @JsonRpcParam("apiKey") String apiKey)
throws UserNotFoundException;
Но я получаю сообщение об ошибке. Значение атрибута должно быть постоянным.
Я знаю, что значения должны передаваться в аннотации во время компиляции, но я думал, что это уже известно в мой случай.
Есть ли способ передать туда код ошибки, получив его из перечисления ErrorMessages? Было бы довольно глупо жестко запрограммировать кодовые номера, если они уже объявлены.
Я пытался применить некоторые предложения из найденных мною тем в sof, но безуспешно. Был один способ переписать перечисление в интерфейс, но я бы хотел этого избежать.

Подробнее здесь: https://stackoverflow.com/questions/764 ... ns-in-java

Вернуться в «JAVA»