Сделайте так, чтобы java-компилятор предупреждал, когда используется аннотированный метод (например, @deprecated)

Допустим, я определил пользовательскую аннотацию под названием@Unsafe.

Я хотел бы предоставить процессор аннотаций, который будет обнаруживатьРекомендации к методам, аннотированным@Unsafe и распечатать предупреждение.

Например, учитывая этот код ...

public class Foo {
  @Unsafe
  public void doSomething() { ... }
}

public class Bar {
  public static void main(String[] args) {
    new Foo().doSomething();
  }
}

... Я хочу, чтобы компилятор печатал что-то вроде:

WARN > Bar.java, line 3 : Call to Unsafe API - Foo.doSomething()

Это очень похоже на дух@Deprecated, но моя аннотация сообщает что-то другое, поэтому я не могу использовать@Deprecated непосредственно. Есть ли способ добиться этого с помощью процессора аннотаций? API процессора аннотаций, кажется, больше ориентирован на объектыприменение аннотации (Foo.java в моем примере), чем лица, которыессылка аннотированные участники.

Этот вопрос предоставляет методику для достижения этого в качестве отдельного этапа сборки с использованием ASM. Но мне интересно, смогу ли я сделать это более естественным образом с помощью обработки javac и аннотаций?

Ответы на вопрос(1)

Ваш ответ на вопрос