【问题标题】:Emit real time errors and warnings from annotation processor从注释处理器发出实时错误和警告
【发布时间】:2019-02-04 02:24:36
【问题描述】:

目前我正在使用 Java 进行注释,并且一切正常。我的AbstractProcessor 创建新文件,并在需要时发出错误和警告。不工作的是实时错误和警告。那我的意思是什么?

假设我用@Override 注释了一个非父方法。 IDE 会给我一个实时错误,我无法覆盖此方法,因为它不是父类的一部分。不推荐使用的方法也是如此。每当您尝试调用其中一种方法时,都会收到有关它的警告。请注意,这些错误和警告会立即发出,我无需重新构建项目即可获得有关它们的通知。

实际上,我的警告和错误仅在我重建项目时才会发出,那么如何实现实时错误和警告?不确定这是否重要,但我使用 Intellij 作为 IDE。

【问题讨论】:

  • 我认为您的 IDE 会即时编译文件并从编译器消息中获取警告
  • 是的,这是有道理的。但是为什么我的Processor 没有即时调用呢?我可以在某处看到@Override 处理器的来源吗?
  • 我假设您已经编写了编译时注释处理器并且您的 IDE 是 eclipse?你可能可以,但我猜这需要很多时间才能找到,它是 javac 的一部分,不知何故
  • 是的,我的注释有 RetentionPolicy.SOURCE,我的 IDE 是 Intellij。
  • 我猜在这种情况下,intellij 设置中没有钩子或动作来处理此注释,假设下划线不正确的用法。我不知道在 intellij 中是如何做到的,但显然这是可能的;因为有工具可以做到这一点......

标签: java annotations java-annotations


【解决方案1】:

这取决于您的 IDE。

例如,我使用 eclipse。设置注释处理器后。当我保存文件时,它可以立即显示错误。像这样:

对于您的 IDE,this page 可能会有所帮助。

【讨论】:

    猜你喜欢
    • 2011-01-06
    • 2018-10-12
    • 2017-10-22
    • 1970-01-01
    • 2012-01-14
    • 1970-01-01
    • 2012-09-09
    • 2015-02-16
    • 1970-01-01
    相关资源
    最近更新 更多