Устарев переменную во внешней библиотеке @interface - PullRequest
1 голос
/ 08 апреля 2019

Допустим, у меня есть внешняя библиотека, реализованная в моем проекте, и интерфейс аннотации, который я хотел бы использовать в нем, а именно, FindBy:

@Target({ElementType.FIELD, ElementType.TYPE})
public @interface FindBy {
  String id() default "";

  String name() default "";
}

И скажем, я хочу @Deprecate переменную String name().

Поскольку это внешняя библиотека, я не могу зайти в интерфейс и просто устареть. Расширение, реализация или попытка переопределить это также не принесло плодов.

Каков наилучший метод для исключения этой единственной переменной во внешнем интерфейсе?

1 Ответ

2 голосов
/ 08 апреля 2019

Нет Java-способа сделать это. По крайней мере, если вы хотите избежать повторной упаковки библиотеки.
Однако вы можете использовать IDE. Например, используя IntelliJ IDEA, вы можете использовать Внешние аннотации .

Что означает, что файл annotation.xml поддерживается для каждого пакета, чтобы содержать все необходимые аннотации для классов, методов, полей и т. Д.

После включения функции Внешняя аннотация перейдите к аннотации FindBy, затем, над целевым методом, откройте всплывающее окно quick action всплывающее

enter image description here

И выберите « Метод аннотирования ... ». Появится другое всплывающее окно

enter image description here

Выберите java.lang. Не рекомендуется .
На данный момент был создан файл annotation.xml, содержимое которого похоже на

<root>
    <item name='com.fasterxml.jackson.databind.annotation.JsonSerialize java.lang.Class&lt;? extends com.fasterxml.jackson.databind.JsonSerializer&gt; using()'>
        <annotation name='java.lang.Deprecated' />
    </item>
</root>

Мой пример сделан на поле аннотации Джексона JsonSerialize#using.
Что касается обычаев, теперь вы увидите, что вычеркнуто / устарело

enter image description here

Теперь вы можете git add и git push эти файлы, и все в вашей команде увидят устаревшее поле.


Eclipse имеет похожую функцию, вы можете использовать ее.
Смотрите здесь . Я никогда не пытался, так как я больше не использую Eclipse.

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