【发布时间】:2017-11-23 16:59:00
【问题描述】:
在将项目迁移到 Java 9 时遇到问题。
更新 Java 9 后,我尝试运行项目,但遇到编译器错误:-
Error:(6, 1) java: package javax.annotation is not visible
(package javax.annotation is declared in module java.xml.ws.annotation, which is not in the module graph)
但我找到了解决方法。 我添加了lombok.config 文件。
然后将module-info.java文件添加到项目编译器后再次显示错误
Error:(10, 26) java: variable title not initialized in the default constructor
项目示例:
我们有实体Store:
@AllArgsConstructor
@Getter
public class Story {
private final String title;
}
在 root 的包中我有 module-info.java 内容:
module javanine {
requires lombok;
}
在 root 的项目中,我有 lombok.config 文件:
lombok.addJavaxGeneratedAnnotation = false
lombok.anyConstructor.suppressConstructorProperties = true
config.stopBubbling = true
在代码中的某处我称之为:
public static void main(String[] args) {
Story story = new Story("how as");
System.out.println(story.getTitle());
}
【问题讨论】:
-
嗨@nullpointer 我什至无法构建项目。错误:(10, 26) java: 变量标题未在默认构造函数中初始化。最后编译器显示此错误 Error:(8, 23) java: constructor Story in class com.test.model.Story cannot be applied to given types;必需:未找到参数:java.lang.String 原因:实际参数列表和形式参数列表的长度不同,并且此错误:(10, 26) java:变量标题未在默认构造函数中初始化
-
这就是问题所缺少的。您如何构建项目以及构建时遇到什么错误。也许添加堆栈跟踪。
-
@nullpointer 我尝试在 IDE 中启动它,但失败了。我提供的项目示例
-
我不知道 lombak 是否支持 JDK 9,这里有一个很长的问题跟踪它:github.com/rzwitserloot/lombok/issues/985
-
这可能最终成为stackoverflow.com/questions/41520511/… 的副本。尽管问题描述还保留了一些其他方面。
标签: java-9 lombok java-module module-info