当前位置:  开发笔记 > 编程语言 > 正文

Java"此语言级别不支持lambda表达式"

如何解决《Java"此语言级别不支持lambda表达式"》经验,为你挑选了8个好方法。

我正在测试Java 8的一些新功能,并将示例复制到我的IDE(Eclipse最初,然后是IntelliJ),如下所示:http: //docs.oracle.com/javase/tutorial/java/javaOO/examples/RosterTest. java的

Eclipse没有为lambda表达式提供任何支持,并且IntelliJ不断报告错误"在此语言级别不支持Lambda表达式".我想知道这是我的安装,代码或支持的问题.



1> Abhilash Div..:

在IntelliJ IDEA中:

File Menu→交通Project Structure→交通Project,改Project Language Level8.0 - Lambdas, type annotations etc.


**建议编辑注意事项**:您还可以为每个模块配置语言级别,`文件菜单→项目结构→模块`,但默认情况下它与项目语言级别相同.
@Shubh:在Gradle中,添加这些行,你的代码将起作用:`android {compileOptions {sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8}}`
这个答案已经过时了.在Android 3.1.2上转到```File``` - >```Project Structure``` - >```你要支持lambdas```的模块并设置**Source Compatibility**和**Target兼容性**至**1.8**
我面临Android Studio的相同问题,并且在上面提到的IDE中都没有找到相同的设置.任何建议!
**升级**到**IntelliJ 15**之后,我不得不将*Project Language Level*更改为9然后再更改为8以使其生效.
在Mac上的AS1.5.1上不存在
在maven中,您必须明确设置为1.8语言级别.http://stackoverflow.com/questions/16723533/how-do-you-specify-the-java-compiler-version-in-a-pom-xml-file

2> 小智..:

您还应在"源"选项卡("模块"部分)上更改源代码语言级别.

改变语言水平


你的答案应该更高或与其他答案一起
+1.模块的优先级高于项目的优先级.所以我更喜欢设置模块部分的语言级别.

3> Alen Lee..:

最高票数在最新的Android Studio 3.0或更高版本中不起作用,这是解决方案

    文件>项目结构 在此输入图像描述

改变Source CompatibilityTarget 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
  }
}



4> prayagupd..:

的IntelliJ 13,简单地改变项目语言水平本身8.0具有以下导航.

File
|
|
 ---------Project Structure -> Project tab
          |
          |________Project language level

java8

模块级别

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
            1.8
        
    

改变后一切看起来都不错


@Czipperz:这个答案有图片.我更喜欢它,因为我实际上已经看过所提到的接受的答案,但未注意到下拉列表.这个答案有图片突出显示选项的确切位置.
更改语言级别后也为模块修复了我的问题
关于pom.xml文件的部分确实很有帮助,谢谢!

5> Tarun..:

在Android studio canary build(3. +)中,您可以执行以下操作:

文件 - >项目结构 - >查看模块部分,有类的模块名称.单击要将java升级到1.8版本的模块. - >从1.7或更低版​​本将"源兼容性"和"目标兼容性"更改为1.8.不要改变任何其他东西. - >单击"应用"

现在gradle将重新同步,您的错误将被删除.



6> Morozov..:

只需添加compileOptionsbuild.gradle你的应用程序:

android {


...

  defaultConfig {
    ...
    jackOptions {
      enabled true
    }
  }
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}


几周前谷歌宣布他们贬低了杰克.Java Gradle插件现在本身提供Java 8语言功能支持,从Android Studio 2.4 Preview 4开始.查看[here](https://issuetracker.google.com/issues/37126573#comment2)
@nilsi ok)我会更新答案;)

7> 小智..:

适用于使用Android studio 3.0.1或更高版本的最新用户.只需单击Alt + Enter并将语言级别升级到8.0 - Lambdas,键入注释等.



8> Kejsi Struga..:

如果您的语言5不受支持,请检查以下内容:(对我来说,这在“ 模块”部分中)

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有