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

Kam*_*xom 27 java eclipse lambda java-8

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

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

一些可能有用的信息:

  • 我正在使用Mac
  • 我非常肯定时间API有效(即使是小型Java Doc Box也说它是自1.8以来)

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

Jon*_*eet 64

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

其次,Java Compiler对话框的"源兼容性"部分必须是1.8.否则,即使您被允许使用Java 1.8 的功能,您也将无法使用语言功能.(它不仅仅是lambdas - 有方法引用,接口中的静态方法,以及默认方法.)这里是看的地方:

Java 1.8编译器设置

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

  • @BillK:我希望你有一个离开FlashBuilder的计划.被困在一个死胡同的工具链中会让你变得更糟糕,更糟糕...... (2认同)