如果我使用的是 1.8,为啥源是 1.6 [重复]
Posted
技术标签:
【中文标题】如果我使用的是 1.8,为啥源是 1.6 [重复]【英文标题】:Why source is 1.6 if I'm using 1.8 [duplicate]如果我使用的是 1.8,为什么源是 1.6 [重复] 【发布时间】:2017-07-22 20:38:03 【问题描述】:就像标题一样,我正在尝试编译 lambda,我使用的是 1.8 jdk,但不知道。
此处的错误日志:
证明我真的得到了 1.8:
第 1 部分:
第 2 部分:
任何想法为什么我会遇到这样的问题,lambda 看起来像这样,但我确信它很好,因为我正在编写教程中的代码。
public Topic getTopic(final String id)
topics.stream().filter(t -> t.getId().equals(id)).findFirst().get();
我试图找到解决方案但真的失败了,这就是我在这里写的原因。 附言。对不起我的英语不好:)
【问题讨论】:
看***.com/questions/22703412/… 【参考方案1】:您使用的是 Java 8 JDK,但您项目的语言源代码级别仍设置为 Java 6(可能是为了兼容性)。因此,JDK 8 javac
在 Java 6 的兼容模式下被调用,这会导致它拒绝您的代码,因为它使用了 Java 8 功能。您可能想在项目设置或pom.xml
中修复语言级别,然后重新编译。
您可以编辑您的pom.xml
来解决此问题。有关如何执行此操作的详细信息,请参阅Maven docs,但您可能想要这个:
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
【讨论】:
以上是关于如果我使用的是 1.8,为啥源是 1.6 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
一周第二次课(1月23日) 1.6/1.7 配置IP 1.8 网络问题排查