Как объединить ie нескольких аннотаций в одну и переименовать их атрибуты - PullRequest
2 голосов
/ 27 марта 2020

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

class @interface A {
    int value();
}
class @interface B {
    int value();
}

Я хотел бы сделать что-то вроде:

class @interface Combo {
    int a(); // have this directed to A.value
    int b(); // have this directed to B.value
}

Так что при использовании это будет выглядеть так:

@Combo(a = 1, b = 2)

И имеют эффект

@A(1)
@B(2)

1 Ответ

0 голосов
/ 27 марта 2020

Насколько я понимаю, Java не поддерживает слияние аннотаций , так как компилятор не обеспечивает функциональность. Довольно просто объединить аннотации в spring . Например:

class @interface A {
    int value();
}
class @interface B {
    int value();
}

@A
@B
class @interface Combo {
    int a(); // have this directed to A.value
    int b(); // have this directed to B.value
}

Приведенный выше код будет работать с пружиной, и именно поэтому создается множество аннотаций весенней загрузки. Например, @SpringBootApplication является комбинацией трех аннотаций в основном: @ComponentScan, @EnableAutoConfiguration and @SpringBootConfiguration.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...