Java 8 Lambdas不起作用,Java 8的其他所有内容都可以工作

2022-09-01 13:51:06

我发现Java 8现在已经正式发布了。似乎我需要Eclipse Luna 4.4才能工作。所以我下载了Luna并安装了它。我还从其他 Eclipse 导入了所有项目,一切都按预期工作。当我想尝试Java 8时,我很快发现我需要先安装它。安装后,我设法将JRE 8更改为默认值。

我的问题是:为什么我可以使用新的日期和时间 API,但不能使用新的 Lambda 表达式?

一些可能有用的信息:

  • 我使用的是 Mac
  • 我非常确定时间API可以正常工作(即使是小的Java Doc Box也说它是从1.8开始的)

这是否与我没有安装包含Java 8的Eclipse有关?


答案 1

首先,你不需要使用Luna - 开普勒有一个功能补丁,可以正常工作。

其次,Java编译器对话框的“源代码兼容性”部分必须是1.8。否则,即使您被允许使用 Java 1.8 的功能,您也无法使用语言功能。(这不仅仅是lambdas - 例如,有方法引用,接口中的静态方法和默认方法。以下是查找位置:

Java 1.8 compiler settings

你很少使用1.8中的库功能,但保持源代码/类文件与1.7或更早版本的兼容性,但我想如果你正在编写需要在各种JRE上运行的代码,它可能会很有用,但是你可以有一些需要Java 1.8的功能实现,并且不会在早期的JRE上使用。


答案 2

推荐