我正在测试Java 8的一些新特性,并将示例复制到我的IDE(最初是Eclipse,然后是IntelliJ),如下所示
Eclipse对lambda表达式不提供任何支持,IntelliJ不断报告错误
此语言级别不支持Lambda表达式
我想知道这是否是我的安装、代码或支持的问题。
我正在测试Java 8的一些新特性,并将示例复制到我的IDE(最初是Eclipse,然后是IntelliJ),如下所示
Eclipse对lambda表达式不提供任何支持,IntelliJ不断报告错误
此语言级别不支持Lambda表达式
我想知道这是否是我的安装、代码或支持的问题。
当前回答
7.0不支持lambda表达式。只需将此添加到您的应用程序gradle,将您的语言级别更改为8.0:
compileOptions {
targetCompatibility 1.8
sourceCompatibility 1.8
}
其他回答
使用: IntelliJ IDEA 2017.1.4 Build #IU-171.4694.23
通过项目设置/项目选项卡改变语言级别没有任何作用。相反,点击Alt + Enter并选择“设置语言级别为8 - Lambdas,类型注释等”,它会自动解决。
实际上,Eclipse对Java 8的支持是可用的:请参见这里和这里。
对于开普勒来说,它是针对SR2(即Eclipse 4.3.2)的“功能补丁”。 对于Luna (Eclipse 4.4),它将出现在标准发行版中。(发布时间表)
只需在build中添加compileOptions即可。Gradle你的应用:
android {
...
defaultConfig {
...
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
IntelliJ IDEA:
在文件菜单→项目结构→项目,将项目语言级别更改为8.0 - Lambdas,输入注释等。
Android 3.0+ Go文件→项目结构→模块→应用程序和属性选项卡设置源兼容性和目标兼容性为1.8 (Java 8)
截图:
可能原因#1(与此问题的前3个答案相同):项目结构设置
在“项目设置”下,进入“项目>”,将“项目SDK”设置为1.8(65或以上版本,最新为112),并将“项目语言级别”设置为8。 在平台设置下,进入项目>,确保您的JDK主路径设置为1.8(版本65或以上,最新是112)。
如果上述方法不起作用,请检查编译器的目标字节码版本,然后转到可能原因#2。
可能原因#2:编译器
文件>设置>构建,执行,部署>在编译器下,进入Java编译器>将你的项目字节码版本设置为1.8,以及你的模块的所有目标字节码版本。单击Apply并点击OK。重新启动IntelliJ IDE。此时,Lambda表达式在我的IDE中已被接受。
祝福你:)