我正在测试Java 8的一些新功能,并将示例复制到我的IDE(Eclipse最初,然后是IntelliJ),如下所示:http: //docs.oracle.com/javase/tutorial/java/javaOO/examples/RosterTest. java的
Eclipse没有为lambda表达式提供任何支持,并且IntelliJ不断报告错误"在此语言级别不支持Lambda表达式".我想知道这是我的安装,代码或支持的问题.
在IntelliJ IDEA中:
在File Menu
→交通Project Structure
→交通Project
,改Project Language Level
以8.0 - Lambdas, type annotations etc.
您还应在"源"选项卡("模块"部分)上更改源代码语言级别.
最高票数在最新的Android Studio 3.0或更高版本中不起作用,这是解决方案
文件>项目结构
改变Source Compatibility
和Target Compatibility
改变1.8
编辑配置文件
您也可以直接在相应的build.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 13,简单地改变项目语言水平本身8.0
具有以下导航.
File | | ---------Project Structure -> Project tab | |________Project language level
Modules lang level
当没有maven插件时,我还必须更新java compiler
.
File | | ---------Project Structure -> Modules tab | |________ language level
但Module lang level
如果已经有了maven plugin
它,这将自动修复,
org.apache.maven.plugins maven-compiler-plugin 3.6.0 1.8
改变后一切看起来都不错
在Android studio canary build(3. +)中,您可以执行以下操作:
文件 - >项目结构 - >查看模块部分,有类的模块名称.单击要将java升级到1.8版本的模块. - >从1.7或更低版本将"源兼容性"和"目标兼容性"更改为1.8.不要改变任何其他东西. - >单击"应用"
现在gradle将重新同步,您的错误将被删除.
只需添加compileOptions
build.gradle你的应用程序:
android { ... defaultConfig { ... jackOptions { enabled true } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
适用于使用Android studio 3.0.1或更高版本的最新用户.只需单击Alt + Enter并将语言级别升级到8.0 - Lambdas,键入注释等.
如果您的语言5不受支持,请检查以下内容:(对我来说,这在“ 模块”部分中)