【问题标题】:Enforcing java annotations at compile time在编译时强制执行 java 注释
【发布时间】:2012-01-24 03:06:00
【问题描述】:

嗨:我想确保在编译时在类中存在注释。这可能吗 ?我意识到注释本身就是类,所以我假设是这样 - 但我只是不确定在语法上在哪里以及如何在我的类中强制/实现这样的结构。

【问题讨论】:

  • 我经常看到注释检查器被用作单元测试套件的一部分。这对你有用吗?
  • 嗯——我有一些常量需要从类中获取。这些类有一个丑陋的构造函数,所以我不能使用 getter 来强制它们。所以我想我会使用带有常量参数的注释作为注释字段来注释类。

标签: java compilation annotations


【解决方案1】:

您可以编写注释处理器以在编译时运行任意逻辑。

从注解处理器中,如果某个类上存在特定注解,您可以检查该类是否具有特定结构或成员。它们非常灵活 - 有关您可以使用它们做什么的更多想法,请查看 the API。 Eclipse 和 Netbeans 等主要 IDE 也支持它们。

写注解处理器的介绍是here

【讨论】:

  • 这是一个很好的答案。我会等着看是否有更高级别或更简单的方法(即在现有代码/类中简单地强制执行此操作的方法)。
  • 据我所知,注释处理器将省略对尚未具有注释的类的处理,这似乎不是 OP 正在寻找的。不过,我正在寻找相同的解决方案,所以如果我错了,我会喜欢一个例子。
  • 如果你在你的处理器上使用@SupportedAnnotationTypes("*") 那么它会拾取所有的类,即使它上面没有注释。
  • @prunge 我(几乎)爱你!谢谢你的评论
  • 链接已失效。
猜你喜欢
  • 2014-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-01
  • 2015-05-19
  • 1970-01-01
  • 2010-10-05
相关资源
最近更新 更多