Java 8 Lambdas don';不起作用,但是Java8中的所有其他功能都起作用

Java 8 Lambdas don';不起作用,但是Java8中的所有其他功能都起作用,java,eclipse,lambda,java-8,Java,Eclipse,Lambda,Java 8,我发现Java8现在正式发布了。看来我需要EclipseLuna4.4才能让它工作。所以我下载了Luna并安装了它。我还从我的另一个Eclipse导入了我的所有项目,一切正常。当我想尝试Java8时,我很快发现我需要先安装它。安装之后,我设法将JRE 8更改为默认值 我的问题是:为什么我可以使用新的日期和时间API,但不能使用新的Lambda表达式 一些可能有用的信息: 我用的是Mac电脑 我非常确定API的工作时间(即使是小的Java文档框也说它是从1.8开始的) 这可能与我没有安装包含J

我发现Java8现在正式发布了。看来我需要EclipseLuna4.4才能让它工作。所以我下载了Luna并安装了它。我还从我的另一个Eclipse导入了我的所有项目,一切正常。当我想尝试Java8时,我很快发现我需要先安装它。安装之后,我设法将JRE 8更改为默认值

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

一些可能有用的信息:

  • 我用的是Mac电脑
  • 我非常确定API的工作时间(即使是小的Java文档框也说它是从1.8开始的)

这可能与我没有安装包含Java 8的Eclipse有关吗?

首先,您不需要使用Luna-有一个很好的解决方案

其次,Java编译器对话框的“源代码兼容性”部分必须是1.8。否则,即使允许您使用Java1.8的库功能,您也不能使用语言功能。(不仅仅是lambdas,还有方法引用、接口中的静态方法和默认方法等。)下面是查看的地方:


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

将您的JDK合规性级别设置为8。您不需要使用Luna-开普勒有一个功能补丁,可以正常工作。好的,谢谢,我没有意识到Eclipse Luna实际上不应该被使用。@Kametrixom:如果你想的话,你可以使用Luna;这不是最新发布的版本。有点beta风格,虽然可能还不错。@JonSkeet不是从Java8中删除的接口中的静态方法吗?这对我来说是可行的。我花了一些时间研究eclipse.ini中提到的jvm,它是1.8。没有必要下载这里提到的lambda库:@BillK:我希望你有一个离开FlashBuilder的计划。陷入死胡同会让你越来越难受。。。