【问题标题】:"log has private access" error when using Slf4j annotation and Lombok in IntelliJ在 IntelliJ 中使用 Slf4j 注释和 Lombok 时出现“日志具有私有访问权限”错误
【发布时间】:2015-02-12 14:40:01
【问题描述】:

我正在使用 Lombok 将日志记录添加到我的 Java 应用程序。我已经使用了一段时间,但是自从我将我的 IDE 从 IntelliJ 13 Community 版升级到 14 Ultimate 后,我得到了以下编译错误(使用 maven):

error: log has private access in SesameServer

此错误源自SesameServer 的子类:

@Slf4j
public class AnnotatorServices extends SesameServer {

  @Override
  protected void initialiseRDFStoreManager(Series<Parameter> parameters) throws RepositoryConfigException, RepositoryException {
      log.info("<< ------ Annotator Services ------- >>");
  }
}

当然SesameServer 也使用@Slf4j 注解来添加日志。 @Slf4j 注解添加以下行:

 private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(SesameServer.class);

到使用它的类(SesameServerAnnotatorServices 其中SesameServer.class 当然被AnnotatorServices.class 替换)。 显然编译器认为我想使用来自SesameServerlog 变量而不是AnnotatorServices(两个类都有同名的变量)。

我怎样才能防止这个问题,即使用SesameServer.log 而不是AnnotatorServices.log

【问题讨论】:

  • AnnotatorServices.this.log
  • 重建,这应该按原样工作。
  • @xTrollxDudex 不幸的是没有。
  • @RC。通常我使用maven进行编译。如果我在 IntelliJ 中进行重建,我仍然会得到相同的错误,但有一些额外的信息:警告:(23、8)java:由于(很可能)类加载器问题而无法初始化 javac 处理器:java.lang。 NoClassDefFoundError: com/sun/tools/javac/code/TypeTags 在 lombok.javac.Javac.(Javac.java:104) 在 lombok.javac.handlers.HandleGetter.(HandleGetter.java:294)。 .. 引起:java.lang.ClassNotFoundException: com.sun.tools.javac.code.TypeTags at java.net.URLClassLoader$1.run(URLClassLoader.java:372) ...

标签: java slf4j lombok intellij-14


【解决方案1】:

注意:其他人在谷歌搜索此错误消息时仍会出现此问题;所以添加我的修复希望这会有所帮助。

pom.xml 重新打开一个项目后,我遇到了类似的问题。

由于我的父类 SesameServer 已经构建在不同的模块中并使用了依赖项;当我编译我的AnnotatorServices 时,我还看到了error: log has private access in SesameServer


要修复它,我只需为包含 AnnotatorServices 的模块打开注释处理。

在 IntelliJ Community 2017.1.6 中,该复选框位于:

  1. 文件 -> 设置
  2. “构建、执行部署 -> 编译器 -> 注释处理器”
  3. 勾选“启用注释处理”

【讨论】:

    【解决方案2】:

    以下步骤对我有用

    1. 在 Settings=>插件中安装 Lombok Plugin 在 Marketplace 下搜索 Lombok 并安装。
    2. 然后在 IntelliJ Community 2017.1.6 中转到 File->Invalidate Caches/Restart 并单击两者。

    为我做了诀窍。一切顺利。

    【讨论】:

      【解决方案3】:

      更新您的 lombok 插件。有时想法不显示新的更新,所以转到设置 => 插件并搜索“lombok” 点击“更新”并重启idea

      【讨论】:

      • 我试过了,但问题仍然存在。请问还有其他想法吗?谢谢。
      【解决方案4】:

      确保您的子类也使用@Slf4j 正确注释。

      【讨论】:

        猜你喜欢
        • 2018-12-28
        • 2020-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-07
        • 1970-01-01
        • 2015-06-04
        相关资源
        最近更新 更多