[java] Java “이 언어 레벨에서 지원되지 않는 람다 표현식”

Java 8의 새로운 기능을 테스트하고 여기에 표시된 것처럼 예제를 내 IDE (Eclipse, 원래 IntelliJ)에 복사했습니다 .

Eclipse는 람다 식에 대한 지원을 제공하지 않았으며 IntelliJ는 계속 오류를보고했습니다.

이 언어 레벨에서 지원되지 않는 Lambda 표현식

이것이 설치, 코드 또는 지원에 문제가 있는지 알고 싶습니다.



답변

IntelliJ IDEA에서 :

에서 File MenuProject StructureProject변경 Project Language Level8.0 - Lambdas, type annotations etc.

안드로이드 3.0 이상 이동에 대한 FileProject StructureModuleapp와에서 속성 탭 세트 Source CompatibilityTarget Compatibility1.8 (Java 8)

스크린 샷 :

여기에 이미지 설명을 입력하십시오


답변

소스 탭 (모듈 부분)에서도 소스 코드 언어 레벨을 변경해야합니다.

언어 수준 변경


답변

이 솔루션은 Android Studio 3.0 이상에서 작동합니다.

  1. 파일> 프로젝트 구조> 모듈> 앱> 속성 탭

여기에 이미지 설명을 입력하십시오

모두 변경 Source CompatibilityTarget Compatibility1.8

  1. 구성 파일 편집

해당 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

java8

모듈 언어 수준

Modules lang level에 대한 maven 플러그인이 없을 때 업데이트해야 했습니다 java compiler.

File
|
|
 ---------Project Structure -> Modules tab
          |
          |________ language level

모듈 언어 수준

그러나 Module lang level이미 필요한 경우 자동으로 수정됩니다 maven plugin.

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.6.0</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
    </plugin>

변경 후 모든 것이 좋아 보인다


답변

Android Studio Canary Build (3. +)에서 다음을 수행 할 수 있습니다.

파일-> 프로젝트 구조-> 모듈 섹션에서 클래스의 모듈 이름이 있습니다. Java를 1.8 버전으로 업그레이드하려는 모듈을 클릭하십시오. -> “소스 호환성”및 “대상 호환성”을 1.7 이하에서 1.8로 변경하십시오. 다른 것을 바꾸지 마십시오. -> 적용을 클릭하십시오

이제 gradle이 다시 동기화되고 오류가 제거됩니다.


답변

compileOptionsbuild.gradle yours 앱을 추가 하십시오.

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, 입력 주석 등으로 ​​업그레이드하십시오.