我正在测试Java 8的一些新特性,并将示例复制到我的IDE(最初是Eclipse,然后是IntelliJ),如下所示
Eclipse对lambda表达式不提供任何支持,IntelliJ不断报告错误
此语言级别不支持Lambda表达式
我想知道这是否是我的安装、代码或支持的问题。
我正在测试Java 8的一些新特性,并将示例复制到我的IDE(最初是Eclipse,然后是IntelliJ),如下所示
Eclipse对lambda表达式不提供任何支持,IntelliJ不断报告错误
此语言级别不支持Lambda表达式
我想知道这是否是我的安装、代码或支持的问题。
当前回答
IntelliJ IDEA:
在文件菜单→项目结构→项目,将项目语言级别更改为8.0 - Lambdas,输入注释等。
Android 3.0+ Go文件→项目结构→模块→应用程序和属性选项卡设置源兼容性和目标兼容性为1.8 (Java 8)
截图:
其他回答
即使在IntelliJ和Eclipse上应用了上述定义的项目特定设置,它仍然是失败的!
对我来说有用的是在POM XML中添加了带有源和目标的maven插件,设置为1.8:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.abc.sparkcore.JavaWordCount</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
正如Stephen C指出的,Eclipse Kepler(4.3)在安装补丁时支持Java 8(安装说明在这里)
安装完成后,您需要告诉您的项目使用java 8。首先将JDK添加到eclipse:
进入“窗口->首选项” 进入“Java ->已安装jre” 添加标准虚拟机,并指向JRE的位置 然后选择编译器 将编译器遵从级别设置为1.8
然后告诉项目使用JDK 1.8:
进入项目->首选项 转到Java编译器 启用项目特定设置 将编译器遵从级别设置为1.8
此解决方案适用于Android Studio 3.0或更高版本。
文件>项目结构>模块>应用>属性选项卡
将Source Compatibility和Target Compatibility都更改为1.8
编辑配置文件
您也可以在相应的版本中直接配置它。gradle文件
android {
...
// Configure only for each module that uses Java 8
// language features (either in its source code or
// through dependencies).
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
使用: IntelliJ IDEA 2017.1.4 Build #IU-171.4694.23
通过项目设置/项目选项卡改变语言级别没有任何作用。相反,点击Alt + Enter并选择“设置语言级别为8 - Lambdas,类型注释等”,它会自动解决。
IntelliJ IDEA:
在文件菜单→项目结构→项目,将项目语言级别更改为8.0 - Lambdas,输入注释等。
Android 3.0+ Go文件→项目结构→模块→应用程序和属性选项卡设置源兼容性和目标兼容性为1.8 (Java 8)
截图: