【问题标题】:Generate compiler warning with user defined annotation使用用户定义的注释生成编译器警告
【发布时间】:2011-07-31 13:07:54
【问题描述】:

是否可以让编译器在遇到用户定义的注解时产生警告?类似于@Deprecated 注释的东西?

谢谢

【问题讨论】:

  • 为什么可以,自定义注释是相当合法的? @Deprecated 的警告是内置功能。查看您的 IDE 是否为自定义静态代码分析提供内置支持...
  • @home :我想注释我已经完成一些编码但评论它的方法,因为目前不需要。以后不想再找了。浏览代码时应该清晰可见。我正在使用 Eclipse Helios。是否可以对其进行代码分析?我无法找到它。谢谢
  • 为什么不在您的 cmets 中使用 //TODO 标签? Eclipse 会将它们全部收集到一个任务列表中。它们也在编辑器窗口的右边缘以蓝色突出显示。 (警告以黄色突出显示。)
  • @jkeeler:eclipse 中自动生成的代码也添加了 todo 标签。许多开发人员在编码后忘记删除标签。所以项目中有一堆无用的待办事项

标签: java compiler-construction annotations warnings


【解决方案1】:

根据您最初的问题和 cmets,我假设您正在尝试执行以下操作:

  • 将代码标记为不完整(带有编译器警告),以便其他开发人员不要使用它。
  • 稍后在您的 IDE 中识别不完整的代码。

我不相信您可以用编译器警告标记代码。 @Deprecated 标签被烘焙到编译器中。一种更常见的指示方法不完整的方法是抛出异常:

throw new UnsupportedOperationException("Not implemented yet");

效果要到运行时才能实现,但其他开发人员应该对他们的代码进行单元测试。

至于识别不完整的代码,我仍然会参考我原来的评论。使用TODO 注释标签,Eclipse 将为您构建一个任务列表。如果您的列表中充斥着尚未清理的自动生成代码,您可以使用FIXMEXXX,或定义您自己的代码。然后您应该能够过滤您的列表。

【讨论】:

    【解决方案2】:

    我已经让 Lombok 的人们考虑提供这个功能 https://github.com/peichhorn/lombok-pg/issues/114 现在已经实现了 ;-) https://github.com/peichhorn/lombok-pg/wiki/%40Warning

    【讨论】:

      【解决方案3】:

      可以通过注释处理器 api 实现

      这里是轻量级 Javac 警告注释库 https://github.com/pushtorefresh/javac-warning-annotation

      用法:

      // some code...
      
      @Warning("This method should be refactored")
      public void someCodeWhichYouNeedAtTheMomentButYouWantToRefactorItLater() {
          // bad stuff going on here...
      }
      

      【讨论】:

        猜你喜欢
        • 2010-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-12
        相关资源
        最近更新 更多