Некоторые ограничения

Существует некоторое количество ограничений, касающихся объявления аннотаций. Во-первых, одна аннотация не может наследовать другую. Во-вторых, все методы, объявленные в аннотации, должны не принимать параметров. Более того, они должны возвращать один из перечисленных ниже типов:

  • примитивный тип, такой как int или double;
  • объект типа String или Class;
  • тип enum;
  • тип другой аннотации;
  • массив одного из предыдущих типов.

Аннотации не могут быть обобщенными. Другими словами, они не могут принимать параметры-типы. (Обобщения рассматриваются в главе 14.) И, наконец, в методах аннотации не может быть указана конструкция throws.