Это значит, что их можно ставить до, после или между обычными модификаторами (например public, final и т.д.).
Причём это относится не только к методам, но и к другим сущностям: типам, конструкторам, полям, параметрам и локальным переменным.
Многие думают, что метод можно аннотировать только вот так:
@Override
public final String toString() {
return "Annotations are just modifiers";
}
Но на самом деле все эти варианты работают одинаково:
public @Override final String toString() ...public final @Override String toString() ...
Все три записи синтаксически корректны и эквивалентны, компилятору всё равно, где стоит аннотация, он воспринимает её как модификатор 😉
👉 Java Portal
