Можно ли создать пользовательскую аннотацию с группой аннотаций в Java? - PullRequest
0 голосов
/ 03 сентября 2018

Я использую ломбок и JPA в моей системе. Так что для классов сущностей все они выглядят так:

@Getter
@Setter
@Entity
@NoArgsConstructor
@AllArgsConstructor
public class XxxEntity {
    ...
}

Итак, мой вопрос, можно ли создать собственную аннотацию для группировки всех этих аннотаций?

так это может выглядеть так:

@CustomAnnotation
public class XxxEntity {
    ...
}

И когда я использую @CustomAnnotation, он применяет все вышеупомянутые аннотации к этому классу.

Возможно ли это?

Спасибо.

1 Ответ

0 голосов
/ 03 сентября 2018

Нет, это невозможно. Вы можете объединить свои аннотации вместе, используя новую аннотацию, но обработчик аннотаций не поймет этого. Аннотация @Caching от Spring является просто примером примечания , известного обработчику примечаний . Если вы создадите собственную аннотацию, скопировав @Caching, держу пари, вы увидите, что она не работает.

Теоретически, может работать, так как процессор аннотаций может читать любую аннотацию и заглядывать внутрь. Однако совершенно непонятно, как обрабатывать неизвестную аннотацию. Размещение других аннотаций внутри не имеет стандартного значения.

Особенно, это не работает для Ломбок. Есть несколько проблем, требующих этого, например, здесь , но это довольно сложно.

Конечным решением будет предварительная обработка аннотаций, понимающих составные аннотации и заменяющих их составляющими до запуска обычных процессоров аннотаций. Но такого нет, и у AFAIK нет планов на это.

...