[intellij-idea] Intellij-최신 Java 8 클래스를 사용할 수 없음-오류 :“@since 1.6 이상으로 문서화 된 API 사용 ..”

java.lang.function.FunctionJava 8 코드베이스에서 를 사용하려고하는데 Intellij에서 다음과 같은 오류가 계속 발생합니다.

@since 1.6 이상으로 문서화 된 API 사용법이 검사는 문서에 @since 태그가있는 모든 메소드 사용법을 찾습니다. 새로운 SDK 버전에서 개발 대상 플랫폼으로 개발할 때 유용 할 수 있습니다.

프로젝트 및 컴파일러 설정이 올바른 것 같습니다

프로젝트 설정 : (파일-> 프로젝트 구조)

Project Settings -> Project -> Project SDK = Java 1.8
Project Settings -> Project -> Project Language Level = 8 - Lambdas, Type Annotations etc

컴파일러 설정 : (파일-> 설정)

Build, Execution, Deployment -> Compiler -> Java Compiler -> Project Bytecode Version : 1.8
Build, Execution, Deployment -> Compiler -> Java Compiler -> Per module Bytecode Version -> Target Bytecode Version : 1.8

무엇이 문제입니까?



답변

Bastien Jansen 의견을 바탕으로 답변을 편집했습니다.

컴파일러 수준에 영향을주는 다른 프로젝트 설정이있는 것 같습니다. 이 문제의 미묘한 표시는 컴파일러가 소스를 불평하기 시작하고 코드를 컴파일하는 동안 지정한 Java 버전과 대상 Java 버전이 다르다는 것입니다

Warning:java: source value 1.5 is obsolete and will be removed in a future release
Warning:java: target value 1.5 is obsolete and will be removed in a future release
Warning:java: To suppress warnings about obsolete options, use -Xlint:-options.

이것을 없애려면 열어야합니다.

File -> Project Structure -> Project Settings -> Modules -> "Your Module Name" -> Sources -> Language Level

원하는 레벨 즉 1.8 또는 프로젝트 기본 언어 레벨로 변경하십시오.


답변

maven을 사용하는 경우 구성 pom.xml 파일 에 아래 행을 추가 한 다음 maven에서 다시 가져 오거나 빌드하십시오.

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

그렇지 않으면 아래 경로에서 Java 컴파일러 및 언어 레벨을 선택하십시오.

파일> 프로젝트 구조> 프로젝트 설정> 모듈> 모듈 이름> 소스> 언어 레벨> 필요한 것을 선택하십시오.

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

여기에서 언어 레벨을 변경하십시오 :-

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


답변

실제로 Maven을 사용 중이고 pom.xml프로젝트 속성이 올바르게 구성된 경우

<project xmlns="...>
....
<properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
</properties>
...
</project

Maven 매개 변수를 intellij-idea프로젝트로 다시 가져올 수 있습니다 . 프로젝트 루트 항목을 마우스 오른쪽 버튼으로 클릭 한 다음 Maven -> Reimport하단에 있습니다.

사진은 Maven이 프로젝트 오른쪽 클릭 메뉴의 마지막 항목에서 두 번째임을 나타냅니다.


답변

방금 다음과 같이 수정했습니다.

프로젝트를 마우스 오른쪽 버튼으로 클릭-> 모듈 설정 열기-> 모듈-> 소스-> 8 이상

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

그리고

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

여전히 오류가 발생하고 maven을 사용 하는 경우 빌드 구성을 다음에 추가해야합니다 pom.xml.

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


답변

파일> 설정> 빌드, 실행, 배포> Java 컴파일러

대상 바이트 코드 버전을 작업중인 모듈의 1.8로 변경하십시오.

Maven을 사용하는 경우

최상위 프로젝트 노드 아래의 pom.xml에 컴파일러 플러그인을 추가하십시오.

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


답변

Gradle을 사용하는 경우 컴파일러를 설정하기 위해 프로젝트 수준에서 수행하는 작업에 관계없이 다음이 1.5가 아닌 1.8로 설정되어 있는지 확인하십시오 (예 : Intelij의 기이 한 이유로 기본값은 1.5로 설정 됨) 호환성 수준에서이 설정을 사용하면 인식하지 못하는 Java 8 기능에 계속 문제가 발생합니다.

version '1.0-SNAPSHOT'

apply plugin: 'groovy'
apply plugin: 'java'

sourceCompatibility = 1.8


답변

리포지토리 구성에는 컴파일러 버전과 같은 속성이 있습니다. settings.xml파일을 검사
하십시오.

<jdk>1.8</jdk>
</activation>
<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>