我正在尝试使用IntelliJ IDE编写JavaFX程序,但是当使用lambda表达式时,出现一条错误消息,随后出现编译错误
覆盖javafx.event.EventHandler中的方法
package sample;
import javafx.application.Application
import javafx.scene.control.*;
import javafx.stage.Stage;
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage window) throws Exception {
window.setTitle("Window Title");
Button button = new Button("Click me");
button.setOnAction(e -> System.out.println("Hello World"));
}
}
要指定,它已设置为JavaFX程序,在项目结构中,我将Project SDK设置为10.0.1,将语言级别设置为8
,使用lambda表达式是否需要缺少某些内容?
但是,为什么这会是一个问题呢?他似乎没有使用8中尚未提供的任何语言功能...
当Java 10与Java 8语言级别一起使用时,@ Itai编译器选项不正确。新模块系统未激活,编译器报告错误。另一个解决方案是将JDK 8用于该项目。
啊,好,那是有道理的。我尚未使用新的模块系统。如果真是这样,那么大概9级语言也可以工作吗?
@Itai是的,级别9也可以解决此问题。
@TylerJames它只是装订线中的图标,仅供参考,如果您不喜欢它的外观,可以将其禁用。如果您希望该图标以其他颜色显示,欢迎访问youtrack.jetbrains.com/issues/IDEA。