在标题中,我正在尝试编译lambda,我使用1.8 jdk,并且不知道。
证明我真的有1.8:
1部分:
为什么我有这样的问题,lambda看起来像这样,但我确定它很好,因为我正在从教程中做代码。
public Topic getTopic(final String id){
topics.stream().filter(t -> t.getId().equals(id)).findFirst().get();
}
我试图找到解决方案,但确实失败了,这就是为什么我在这里写的。 PS。抱歉我的英语不好:)
答案 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>