У меня есть перечисление:Enum статические массивы и значение аннотаций путаница
public enum Scope {
USER, GLOBAL;
public static final Scope[] TRANSIENT = {};
public static final Scope[] USER_OVER_GLOBAL = {GLOBAL, USER};
public static final Scope[] GLOBAL_OVER_USER = {USER, GLOBAL};
}
и аннотации:
public @interface Config {
public Scope[] load() default Scope.GLOBAL_OVER_USER; // Can't use this defval
public Scope[] save() default Scope.USER;
}
Почему я не могу использовать статические массивы в качестве значений по умолчанию для собственности аннотации в? Моя NetBeans 7.3 Beta сообщила мне, что требуется Scope
, но найдено Scope[]
- как вы можете видеть, это не так. Есть ли смешение NB или Java 7?
Вы уверены, что ошибка происходит на отображаемой строке? Потому что ваш код, как показано, должен завершиться неудачей на линии ниже него. – Perception
@Перцепция: это аннотация, поэтому 'USER' обрабатывается как' {USER} 'и это не ошибка. Проблема заключается в использовании статической руки -значные значения для значений аннотации по умолчанию. – kbec