@nonoptimal

daupos2t  于 2021-07-12  发布在  Java
关注(0)|答案(2)|浏览(186)

有什么特别的吗 @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 {
}

如何创建此注解?

6vl6ewon

6vl6ewon1#

我希望我可以延长弃用,但没有可以做的。
在读了很多关于这个的文章之后,我最终得到了一个难看的解决方法。虽然我不喜欢它,但它很管用。
我决定用这两种方法来标记坏方法 @Deprecated 以及 @NonOptimal 注解。这在概念上是错误的(这些方法实际上并没有被弃用),但它可以很好地开箱即用。无需开发overkill eclipse插件:
这个 @Deprecated 到处都是开发人员(在eclipse和构建时),这是一件好事。
这个 @NonOptimal 注解提供了有关为什么使用这种方法不好的详细信息。
丑陋但有效。到目前为止,eclipse还没有提供任何更好的选择。
注意:更糟糕的是,当使用工具链时,非最佳注解在maven中不能很好地工作:警告静音、消失、nada。。。因此,annotationprocessors最终还是没用的。

z6psavjg

z6psavjg2#

@实际上这并不是你问题的真正答案,但不久前我在使用zalando的问题api时遇到了google注解库(又称gag)。
这个库提供了大量的自定义注解,在某些情况下,可以使用asm和自定义java代理来为实际代码提供工具。
也许它能给你一些关于你实际问题的想法。
项目不再维护,但是github中有一个分叉。

相关问题