Код: Выделить всё
public @interface Foo {
int value() default 1;
}
Код: Выделить всё
public @interface Foo {
int value() default 1;
default int add(int addend) { // NOT ALLOWED
return value() + addend;
}
}
В соответствии с приведенной выше грамматикой объявление метода в объявлении интерфейса аннотации не может иметь формальные параметры, параметры типа или предложение throws; и не может быть частным, стандартным или статичным. Таким образом, интерфейс аннотаций не может иметь такое же разнообразие методов, как обычный интерфейс.
Какие технические причины затрудняют это? или невозможно поддержать, если таковые имеются? Я не спрашиваю, почему разработчики Java могли решить, что они не хотят поддерживать это — я прекрасно понимаю, что это не лучший вопрос для StackOverflow — но только если есть конкретные известные проблемы. это может помешать разработчикам JDK добавить такую функцию.
Подробнее здесь: https://stackoverflow.com/questions/790 ... efault-met