我使用Lombok将日志记录添加到我的Java应用程序中。我已经使用了一段时间了,但是自从我将IDE从IntelliJ 13社区版升级到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);
到使用它的类(SesameServer
和AnnotatorServices
,其中SesameServer.class
当然被AnnotatorServices.class
替换。
显然,编译器认为我想使用log
中的SesameServer
变量而不是AnnotatorServices
(两个类都具有相同名称的变量)。
如何防止此问题,即使用SesameServer.log
代替AnnotatorServices.log
?
答案 0 :(得分:1)
注意:谷歌搜索此错误消息的其他人仍然会遇到这种情况;因此添加我的修复程序希望对您有所帮助。
从pom.xml
重新打开一个项目后,我遇到了类似的问题。
由于我的父类SesameServer
已在其他模块中构建并使用了依赖关系;当我编译AnnotatorServices
时,我还看到了error: log has private access in SesameServer
要解决此问题,我只需要为包含AnnotatorServices
的模块打开注释处理。
在IntelliJ Community 2017.1.6中,该复选框位于以下位置:
答案 1 :(得分:0)
更新您的lombok插件。有时候想法不会显示新的更新,所以goto settings =&gt;插件和搜索&#34; lombok&#34; 点击&#34;更新&#34;并重启想法
答案 2 :(得分:0)
以下步骤对我有用
Lombok Plugin
,以搜索Lombok并安装。IntelliJ Community 2017.1.6
中,转到“文件”->“使缓存无效/重新启动”,然后单击两者。帮了我大忙。一切顺利。
答案 3 :(得分:0)
确保@ Slf4j也正确注释了您的子类。