질문자 :Tim H
내 프로젝트를 Eclipse로 다시 가져와야 할 때마다(Eclipse를 다시 설치하거나 프로젝트 위치를 변경한 경우) 재정의된 거의 모든 메서드의 형식이 올바르게 지정되지 않아 오류가 발생합니다.
메서드는 슈퍼클래스 메서드를 재정의해야 합니다.
어떤 이유로 든 Android 프로젝트에서 이것이 메소드 인수 값이 항상 채워지는 것은 아니므로 직접 수동으로 채워야 한다는 점을 언급하는 것은 주목할 만합니다. 예를 들어:
list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() { //These arguments have their correct names public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { } });
처음에는 다음과 같이 채워집니다.
list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() { //This methods arguments were not automatically provided public void onCreateContextMenu(ContextMenu arg1, View arg2, ContextMenuInfo arg3) { } });
이상한 점은 내 코드를 제거하고 Eclipse가 자동으로 메서드를 다시 생성하도록 하면 이미 가지고 있는 것과 동일한 인수 이름을 사용하므로 문제가 어디에 있는지 알지 못하며 그 외에는 메서드를 자동으로 포맷한다는 것입니다. 나.
재정의된 모든 메서드를 손으로 수동으로 다시 만들어야 하는 것은 상당한 고통이 됩니다. 누구든지 왜 이런 일이 발생하는지 또는 해결 방법을 설명할 수 있다면. 나는 기쁠 것이 야.
다른 메서드의 인수 내부에 있는 메서드 형식을 지정하는 방식 때문일 수 있습니까?
Eclipse는 기본적으로 Java 1.5로 설정되어 있으며 인터페이스 메소드를 구현하는 클래스가 있습니다(Java 1.6에서는 @Override
로 주석을 달 수 있지만 Java 1.5에서는 수퍼클래스 메소드를 재정의하는 메소드에만 적용할 수 있음).
프로젝트/IDE 환경 설정으로 이동하여 Java 컴파일러 레벨을 1.6으로 설정하고 JRE 1.6을 선택하여 Eclipse에서 프로그램을 실행하는지 확인하십시오.
alphazeroEclipse Galileo 를 사용하면 Eclipse -> 기본 설정 메뉴 항목으로 이동한 다음 대화 상자에서 Java 및 컴파일러를 선택합니다.
이제 여전히 컴파일러 준수 수준이 1.6으로 표시될 수 있지만 여전히 이 문제가 표시됩니다. 이제 " Configure Project Specific Settings... " 링크를 선택하면 프로젝트가 1.5로 설정되어 있는 것을 볼 수 있습니다. 이제 이것을 1.6으로 변경합니다. 영향을 받는 모든 프로젝트에 대해 이 작업을 수행해야 합니다.
이 비잔틴 메뉴/대화 상자 인터페이스는 Eclipse의 형편없는 UI 디자인의 전형입니다.
Paulalphazero와 Paul의 방법을 모두 시도했지만 여전히 작동하지 않는 다른 사람에게 이런 일이 발생하는 경우.
나를 위해 Eclipse는 프로젝트> 정리를 수행 한 후에도 컴파일 오류를 어떻게 든 '캐시'했습니다.
프로젝트 > 자동으로 빌드를 선택 취소한 다음 프로젝트 > 정리를 수행한 다음 다시 빌드해야 했습니다.
또한 확실하지 않은 경우 Eclipse를 다시 시작해 보십시오 . 이렇게 하면 어색하고 설명할 수 없는 많은 오류를 수정할 수 있습니다.
Rollin_s이 문제를 해결하려면 프로젝트 속성 -> Java 컴파일러 -> 컴파일러 준수 수준을 1.6으로 선택 -> 적용으로 이동합니다.
false9strikerPaul의 대답은 부분적으로 나를 위해 일했습니다. 그때도 한 가지 오류가 있었습니다. 따라서 그 외에도 속성-> 프로젝트 패싯으로 이동하여 Java 버전을 1.5에서 1.6으로 설정해야 했습니다.
도움이 될 수도 있습니다.
ulrich제 경우에는 위의 솔루션 중 어느 것도 효과가 없었습니다.
프로젝트 작업 공간에서 파일을 삭제해야 했습니다.
그리고 폴더:
그런 다음 이전에 작업한 유사한 프로젝트에서 복사했습니다. 이것은 내 깨진 프로젝트를 고칠 수있었습니다.
물론 이전 대안을 시도하기 전에 이 방법을 사용하지 마십시오!.
will824위의 방법 중 아무 것도 도움이 되지 않으면 "대체 JRE"가 아닌 적절한 " 실행 환경 "을 선택했는지 확인하십시오.
아래에서 찾을 수 있습니다:
프로젝트 -> 빌드 경로 -> 라이브러리
JRE System Library
선택하고 Edit...
클릭하십시오.
JavaSE-1.8 (jre1.8.0_60)
과 같은 적합한 "실행 환경"으로 변경합니다. 이유는 모르겠지만 이렇게 하면 해결됩니다.
phil294이 문제가 발생한 것은 이번이 두 번째입니다. alphazero의 권장 사항에 따라 처음으로 작동했습니다. 그러나 두 번째로 1.6으로 설정하면 정리 및 재구축 후 이 오류가 'CACHE'처럼 작동하지 않습니다.
Rollin_s가 말한 대로 '자동으로 빌드'를 끄십시오. -> 오류가 여전히 여기에 있습니다!
그래서 패키지 탐색기에서 문제 프로젝트(이미 1.6으로 설정)를 제거하고 다시 가져옵니다. -> 다시 빌드를 시작하고 이번에는 오류가 발생하지 않습니다.
이것이 누군가를 돕기를 바랍니다.
ob.yann제 경우에는 Maven 프로젝트를 Eclipse로 가져올 때 이 문제가 발생했습니다. 이를 해결하기 위해 pom.xml
다음을 추가했습니다.
<properties> ... <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
그런 다음 프로젝트의 컨텍스트 메뉴에서 "Maven -> Update Project ..."로 이동하여 OK를 누릅니다.
그게 다야 도움이 되었기를 바랍니다.
mljrg수정은 슈퍼 클래스 메서드를 재정의해야 하는 오류는 어렵지 않습니다. Java 1.6부터 @Override 주석을 인터페이스 메서드와 함께 사용할 수 있기 때문에 Java 소스 버전을 1.6으로 변경하기만 하면 됩니다. 소스 버전을 1.6으로 변경하려면 다음 단계를 따르십시오.
- 프로젝트 선택 , 마우스 오른쪽 버튼 클릭 , 속성
- Java 컴파일러를 선택하고 "프로젝트별 설정 사용" 확인란을 선택합니다.
- 이제 컴파일러 준수 수준을 1.6으로 만듭니다.
- 변경 승인
Sunil제 경우에는 위의 솔루션이 작동하지 않습니다. 내 소스 코드를 다른 폴더로 체크아웃해야 합니다. Eclipse에서 파일 > 작업 공간 전환 > 기타...를 선택한 다음 코드를 새 작업 공간으로 가져옵니다. 그 후에 작동합니다.
Hắc Huyền Minh이것은 maven 프로젝트가 다른 컴파일러 준수 수준을 사용하고 Eclipse IDE가 다른 컴파일러 준수 수준을 사용할 때 발생합니다. 이를 수정하기 위해서는 Maven 프로젝트의 Compiler Compliance 레벨을 IDE가 사용하는 레벨로 변경해야 합니다.
1) Eclipse IDE에서 Java 컴파일러 준수 수준 사용을 보려면
*) Window -> Preferences -> Compiler -> Compiler Compliance level : 1.8 (or 1.7, 1.6 등)
2) Maven 프로젝트의 Java Compiler Compliance 레벨 변경
*) "프로젝트" -> "속성"으로 이동 -> "자바 컴파일러" 선택 -> 컴파일러 준수 수준 변경: 1.8(또는 1.7, 1.6 등)
HashanR2020년입니다 -
프로젝트>오른쪽 클릭>자바 컴파일러>컴파일러 준수 수준> 1.8 [또는 최신 수준]으로 변경
Vikas Piprade출처 : http:www.stackoverflow.com/questions/1678122/must-override-a-superclass-method-errors-after-importing-a-project-into-eclips