【问题标题】:Lombok @RequiredArgsConstructor(onConstructor_ = {@MyAnnotation}) compilation error with IntelliJ IDEALombok @RequiredArgsConstructor(onConstructor_ = {@MyAnnotation}) IntelliJ IDEA 编译错误
【发布时间】:2018-12-10 21:44:35
【问题描述】:

我在我的 Mac 上进行了以下设置:

IntelliJ IDEA Ultimate: 2018.1
Lombok Plugin Version: 0.18-2018.1
Java: 1.8.0_111 

另外,我已经按照here 的建议启用了注释处理器

但我仍然有以下编译错误:

Cannot resolve method 'onConstructor_'

请建议缺少哪些配置。

【问题讨论】:

    标签: intellij-idea java-8 lombok intellij-lombok-plugin


    【解决方案1】:

    你应该像这样使用onConstructor参数:

    onConstructor=@__({@AnnotationsHere})
    

    见龙目岛documentation:

    要在生成的构造函数上添加注解,可以使用 onConstructor=@__({@AnnotationsHere})

    【讨论】:

    • 感谢您的回复。它看起来像与 java 7 相关的提议方法。我在文档中找到了以下内容:projectlombok.org/api/index.html?lombok/…。实际上,从JDK8开始应该使用新的样式。
    • 建议的参数工作正常,谢谢,无论如何我仍然感到困惑:),因为使用原始问题中提到的样式的遗留代码库。我不确定这个问题是在我这边还是 lombok 插件中的一些未解决的问题。
    • 我想这是他们的 java-doc 中的错误类型。在他们的站点文档中,只有一个选项。 (如果有帮助,请不要忘记接受/支持答案...)
    【解决方案2】:

    请确保您已启用注释处理并在 IntelliJ IDEA 中添加了 lombok 插件。这应该可以解决大多数情况下的问题。 文档中提到了以下内容。

     * up to JDK7:<br>
         *  {@code @RequiredArgsConstructor(onConstructor=@__({@AnnotationsGoHere}))}<br>
         * from JDK8:<br>
         *  {@code @RequiredArgsConstructor(onConstructor_={@AnnotationsGohere})} // note the underscore after {@code onConstructor}.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-24
      • 1970-01-01
      • 2014-07-23
      • 2019-12-07
      • 1970-01-01
      • 2014-06-22
      • 2018-09-07
      相关资源
      最近更新 更多