인터페이스 메소드에서 Eclipse가 @Override에 대해 불평하는 이유는 무엇입니까?
수퍼 클래스 메소드가 아닌 인터페이스 메소드 @Override
를 대체하는 메소드 를 사용하는 기존 프로젝트가 있습니다. 코드에서 이것을 변경할 수는 없지만 Eclpse는 여전히 Maven으로 빌드 할 수 있으므로 주석에 대한 불평을 중단하고 싶습니다.
이 오류를 비활성화하려면 어떻게해야합니까?
참고 : 프로젝트 요구 사항으로 인해 Java 1.5 용으로 컴파일해야합니다.
@Override
인터페이스가 선언 한 메소드를 구현하는 메소드에 주석을 사용하는 것은 Java 6부터 유효합니다. Java 5의 오류입니다.
IDE 프로젝트가 Java 6 JRE를 사용하도록 설정되어 있고 "소스 호환성"이 1.6 이상으로 설정되어 있는지 확인하십시오.
- 창> 환경 설정 대화 상자를여십시오.
- Java> 컴파일러를 찾아보십시오.
- "컴파일러 준수 수준"을 1.6으로 설정하십시오.
Eclipse는 특정 프로젝트에 대한 이러한 전역 설정을 무시할 수 있으므로 해당 설정도 확인하십시오.
최신 정보:
Java 5의 오류는 Eclipse에서만 발생하는 것이 아닙니다. javac
명령 행에서 직접 사용 하면 동일한 오류가 발생합니다. 유효한 Java 5 소스 코드가 아닙니다.
그러나 -target 1.5
JDK 6에 옵션을 지정할 수 있습니다 javac
. 그러면 Java 6 소스 코드에서 Java 5 버전 클래스 파일이 생성됩니다.
다음과 같이하십시오 :
프로젝트-> 속성-> Java 컴파일러->
- 프로젝트 특정 설정 사용- '예'
- 컴파일러 준수-1.6
- 생성 된 클래스 파일 및 소스 호환성-1.5
프로젝트에 패싯이 있는지 확인하십시오. Java 버전이 대체 될 수 있습니다.
프로젝트 별 설정이 활성화 될 수 있습니다. 프로젝트 선택 Project > Properties > Java Compiler
, 또는 변경 하고 위의 해당 잊고하지 . 그렇지 않은 작업을 수행 못했을 경우에 대비, 삭제, 이클립스에서 프로젝트를 제거 , , 파일을. 일식. 그것은 나를 위해 일했다uncheck
Enable project specific settings
Jdk 1.6
JRE
.settings folders
.project
.classpath
clean and build the project, import it back into eclipse and then reset your Java compiler. Clean and build your project
컴파일러 설정을 변경하여 Java 6 구문을 허용하지만 Java 5 출력을 생성 할 수 있습니다 (기억 한대로). 런타임에 필요한 경우 "생성 된 클래스 파일 호환성"을 약간 낮게 설정하십시오. 업데이트 : Eclipse를 확인했지만 소스 호환성을 1.6으로, 클래스 호환성을 1.5로 설정하면 불평합니다. 1.6이 허용되지 않으면 일반적으로 소스에서 문제가되는 @Override 주석을 수동으로 주석 처리합니다 (귀하의 경우에는 도움이되지 않음).
업데이트 2 : 수동 빌드 만하면 원본 프로젝트를 새 프로젝트로 복사하고 Java 소스에서 @Override 주석을 제거하고 Eclipse에서 프로젝트 정리를 누르는 작은 프로그램을 작성할 수 있습니다.
Retroweaver를 사용하여 Java6 클래스에서 Java5 버전을 작성할 수도 있습니다.
Eclipse를 사용하여 "@Override"의 모든 인스턴스를 검색하고 바꾸십시오 (제거). 그런 다음 "클린업"을 사용하여 비 인터페이스 재정의를 다시 추가하십시오.
단계 :
- 소스 파일이 포함 된 프로젝트 또는 폴더를 선택하십시오.
- "검색> 검색 ..."(Ctrl-H)으로 이동하여 검색 대화 상자를 불러옵니다.
- "파일 검색"탭으로 이동하십시오.
- "텍스트 포함"에 "@Override"를 입력하고 "파일 이름 패턴"에 "* .java"를 입력하십시오. "@Override"의 모든 인스턴스를 제거하려면 "Replace ..."를 클릭 한 다음 "OK"를 클릭하십시오.
- "창> 환경 설정> Java> 코드 스타일> 정리"로 이동하여 새 프로파일을 작성하십시오.
- 프로필을 수정하고 "없는 코드> 누락 된 주석 추가> @ 재정의"를 제외한 모든 항목의 선택을 취소하십시오. "인터페이스 메소드 구현"이 선택 취소되어 있는지 확인하십시오.
- 소스 파일이 포함 된 프로젝트 또는 폴더를 선택하십시오.
- "소스> 정리 ..."(Alt + Shift + s, u)를 선택한 다음 "마침"을 선택하여 비 인터페이스 재정의를 다시 추가하십시오.
문제를 이해했습니다. jdk를 jdk에서 1.5 이상으로 변경하십시오.
IDE 프로젝트가 Java 6 JRE 이상을 사용하도록 설정되도록 구성하면 때때로 Eclipse 오류가 제거되지 않습니다. 나를 위해 이클립스 IDE 의 재시작 이 도움이되었습니다.
Windows 탭에서 컴파일러 준수 설정을 1.6 또는 1.7로 변경 한 다음 우선 순위, Java, 컴파일러 및 컴파일러 준수 설정을 변경 한 후에도 여전히이 문제가 발생했습니다. 아이디어는 프로젝트 폴더로 이동하여 마우스 오른쪽 버튼을 클릭하고 Java를 컴파일하고 컴파일러 준수를 1.6 이상으로 설정해야한다는 것입니다. 이것은 나를 위해 일했습니다.
'programing tip' 카테고리의 다른 글
SQLite에서 문자열 연결이 작동하지 않습니다 (0) | 2020.06.28 |
---|---|
json.net에 중요한 방법이 있습니까? (0) | 2020.06.28 |
모두 비활성화하는 방법 (0) | 2020.06.28 |
SVN은 커밋 전에 삭제를 취소합니다. (0) | 2020.06.28 |
캡슐화 vs 추상화? (0) | 2020.06.27 |