如果我使用1.8,为什么源是1.6

时间:2017-03-02 22:08:05

标签: java spring lambda java-8

在标题中,我正在尝试编译lambda,我使用1.8 jdk,并且不知道。

错误日志在这里: enter image description here

证明我真的有1.8:

1部分:

enter image description here

2部分: enter image description here

为什么我有这样的问题,lambda看起来像这样,但我确定它很好,因为我正在从教程中做代码。

public Topic getTopic(final String id){
    topics.stream().filter(t -> t.getId().equals(id)).findFirst().get();
}

我试图找到解决方案,但确实失败了,这就是为什么我在这里写的。 PS。抱歉我的英语不好:)

1 个答案:

答案 0 :(得分:2)

您正在使用Java 8 JDK,但您项目的语言源级别仍设置为Java 6(可能是为了兼容性)。因此,在Java 6的兼容模式下调用JDK 8 javac,导致它拒绝您的代码,因为它使用Java 8功能。您可能希望在项目的设置或pom.xml中修复语言级别,然后重新编译。

您可以修改pom.xml来解决此问题。有关如何执行此操作的详细信息,请参阅start here,但您可能需要这样:

<properties>
  <maven.compiler.source>1.8</maven.compiler.source>
  <maven.compiler.target>1.8</maven.compiler.target>
</properties>