Я написал свою пользовательскую аннотацию и отлично работает, если я использую ее, как показано ниже.
@MyAnnotation("sun")
public void getResult(String id){
}
MyAnnotation.java
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
String value();
}
приведенный выше код работает нормально. Теперь вместо жесткого кодирования «солнца» я хотел бы сохранить его в Enum, как показано ниже.
public enum WeekDay{
SUNDAY("sun"), MONDAY("mon");
private String day;
WeekDay(String day) {
this.day= day;
}
public String getDay() {
return this.day;
}
}
и теперь с аннотацией я делаю, как показано ниже.
@MyAnnotation(WeekDay.SUNDAY.getDay())
public void getResult(String id){
}
приведенный выше код дает ошибку компиляции в eclipse. В нем говорится: Значение атрибута аннотации MyAnnotation.value должно быть постоянным выражением. Я делаю что-то не так здесь?
Спасибо!