java - 为警告创建 Java 注释 - @NonOptimal
问题描述
@Deprecated
我无法复制的注释有什么特别之处吗?
我需要创建一个类似于@Deprecated
在 Eclipse 中以及在构建时产生警告的注释。当我标记一个方法时,@Deprecated
我得到了很好的警告。例如,如果我有一个旧方法(出于兼容性原因我可能仍然保留):
@Deprecated
public List<Account> getClientAccounts(final int clientId) {
// Implement search...
}
然后,如果我尝试在 Eclipse 中使用它,我可以看到它带有删除线,并且左侧栏中有一个黄色图标:
此外,在构建时,我可以看到:
[警告] app1/src/test/java/com/app1/MyApp.java:app1/src/test/java/com/app1/MyApp.java 使用或覆盖了已弃用的 API。
现在,根据我无法控制的外部因素(例如,缺少数据库索引),某些方法不是最佳的,我想用我全新的@NonOptimal
注释清楚地标记它们。我需要增加对问题的可见性。到目前为止,我有:
@Retention(RUNTIME)
@Target(METHOD)
// What else here?
public @interface NonOptimal {
}
如何创建此注释?
解决方案
@TheImpaler 这实际上不是您问题的真正答案,但前段时间我在使用 Zalando 的问题 API 时遇到了Google 注释库(又名 gag)。
这个库提供了大量的自定义注释,在某些情况下,可以通过使用 ASM 和自定义 java 代理来检测您的实际代码。
也许它可以给你一些关于你的实际问题的想法。
该项目不再维护,但Github中有一个分支。
推荐阅读
- python - 如何在 Lambda 中阅读或解释 Lambda
- apache-kafka - zookeper 如何与 kafka 交谈以知道 kafka 已启动
- json - 抓取 - 使用 python 捕获 json 响应
- ios - Swift - ContactStore 错误无法连接到服务 com.apple.contactsd
- android - 在其他机器上运行应用程序时出现 Firebase 错误
- php - 我的 api 不起作用,它没有显示异常
- linux - 网站使用 Let's Encrypt 的哪个证书用于 HTTPS?
- android-studio - 在 Android Studio 上,将背景屏幕从白色变为黑色?
- mysql - 将同一列中的两行相乘
- python - Python:并行或多线程组合来自不同文件的列表