创建自定义注释作为框架注释的别名?

hot*_*zen 6 java annotations

是否可以创建自定义别名注释来代替

@SuppressWarnings("unused") // EventBus
public void onEvent(SomeMessage msg) { ... }
Run Code Online (Sandbox Code Playgroud)

喜欢

@EventBusListener
public void onEvent(SomeMessage msg) { ... }
Run Code Online (Sandbox Code Playgroud)

这将是更多的自我记录,当然应该包括 SuppressWarnings ......对不起,如果这微不足道,但到目前为止我的谷歌搜索失败了。

mer*_*nst 2

一种方法是编写一个注释处理器来转换 AST(编译器对源代码的内部表示)。每次出现 时@EventBusListener,您的注释处理器都会插入一次@SuppressWarnings("unused"). 编译器的后续阶段将看到该注释。

注释处理器通常不会更改源代码,因此这需要一些工作。AST 作为接口类型提供给注释处理器,因此注释处理器需要将其转换为具体类并对具体类执行副作用。 Project Lombok是在编译期间修改 AST 的注释处理示例。

不过,您可能只想编写@SuppressWarnings("unused")注释。