programing

프로젝트를 Eclipse로 가져온 후 'Must Override a Superclass 메서드' 오류

nicescript 2022. 7. 3. 11:51
반응형

프로젝트를 Eclipse로 가져온 후 'Must Override a Superclass 메서드' 오류

프로젝트를 Eclipse로 다시 가져와야 할 때마다(Eclipse를 다시 설치하거나 프로젝트 위치를 변경한 경우) 재정의된 메서드의 거의 모든 형식이 올바르게 지정되지 않아 다음과 같은 오류가 발생합니다.

메서드는 슈퍼클래스 메서드를 재정의해야 합니다.

Android 프로젝트에서는 어떤 이유로든 method 인수 값이 항상 채워지는 것은 아니기 때문에 직접 입력해야 합니다.예:

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가 자동으로 메서드를 다시 작성하도록 하면 이미 가지고 있던 인수명을 그대로 사용하기 때문에 문제가 어디에 있는지 알 수 없고 메서드가 자동으로 포맷됩니다.

오버라이드된 모든 메서드를 수동으로 다시 작성해야 하는 번거로움이 큽니다.왜 이런 일이 일어나는지, 어떻게 고쳐야 하는지 설명할 수 있는 사람이 있다면요.정말 기쁠 것 같아요.

다른 메서드의 인수 안에 있는 메서드를 포맷하고 있기 때문일까요?

1.메서드를 1.6에서는 Eclipse의 Java 1.5에 달 수 ).@Override단, Java 1.5는 슈퍼클래스 메서드를 덮어쓰는 메서드에만 적용할 수 있습니다).

프로젝트/IDE 기본 설정으로 이동하여 Java 컴파일러 레벨을 1.6으로 설정하고 Eclipse에서 프로그램을 실행할 JRE 1.6을 선택해야 합니다.

Eclipse Galileo를 사용하여 Eclipse -> Preferences 메뉴 항목으로 이동한 후 대화상자에서 Java 및 컴파일러를 선택합니다.

컴파일러 준거 레벨은 1.6으로 표시되는 경우가 있습니다만, 이 문제는 아직 발생하고 있습니다.이제 "프로젝트 고유 설정 구성..." 링크를 선택합니다.「」라고 표시됩니다.프로젝트가 1.5로 설정되어 있는 것을 알 수 있습니다.이것을 1.6으로 변경합니다.영향을 받는 모든 프로젝트에 대해 이 작업을 수행해야 합니다.

이 복잡한 메뉴/대화상자 인터페이스는 Eclipse의 열악한 UI 설계의 전형입니다.

알파제로와 폴의 방법을 시도했지만 여전히 효과가 없었던 다른 사람에게 이런 일이 생길 경우를 대비해서요

프로젝트 > 클린...을 실행한 후에도 이클립스는 컴파일 오류를 어떻게든 '캐시'했습니다.

[ Project ]> [ Build Automatic ]의 선택을 해제하고 [Project]> [ Clean ]를 선택하여 다시 빌드해야 했습니다.

또한 확실하지 않은 경우 이클립스를 재시작해 보십시오.이로 인해 많은 어색하고 설명할 수 없는 오류가 수정될 수 있습니다.

이 문제를 해결하려면 [프로젝트 속성]-> [ Java 컴파일러]-> [컴파일러 준거 수준 1.6]-> [적용]으로 이동합니다.

폴의 답변은 나에게 부분적으로 효과가 있었다.그때도 한 가지 오류가 있었어요.그 외에도 Properties -> Project Facets로 이동하여 Java 버전을 1.5에서 1.6으로 설정해야 했습니다.

그게 도움이 될지도 몰라

위의 어느 것도 도움이 되지 않는 경우는, 「대체 JRE」가 아니고, 「실행 환경」이 올바르게 선택되고 있는 것을 확인해 주세요.

다음 항목에서 찾을 수 있는 항목

프로젝트 -> 빌드 경로 -> 라이브러리

를 선택합니다.JRE System Library 다음 을 클릭합니다.Edit....

" JRE선택한 경우 "체 j JRE..."와 같은 합니다."를 선택한 경우 다음과 같은 적합한 "실행 환경"으로 변경합니다.JavaSE-1.8 (jre1.8.0_60)이유는 모르겠지만, 이걸로 해결할 수 있을 거야.

저 같은 경우에는 위의 해결 방법이 효과가 없었습니다.

프로젝트 작업 공간 내의 파일을 삭제해야 했습니다.

  • .프로젝트.
  • .classpath

폴더:

  • .disclosed(비활성화)

그리고 전에 진행되던 비슷한 프로젝트의 것을 복사했습니다.이것으로 내 망가진 프로젝트를 고칠 수 있었다.

물론 이전 대안을 시도하기 전에는 이 방법을 사용하지 마십시오!

이 문제는 이번이 두 번째입니다.처음에는 알파제로의 권장사항에 따라 작동했지만, 두 번째로는 1.6으로 설정했을 때 청소 및 재구축 후 'CACHE'처럼 작동하지 않습니다.

Rollin_s가 말한 바와 같이 "Build Automatically"를 끄십시오.-> 에러가 아직 표시됩니다.

그래서 패키지 탐색기에서 문제 프로젝트(1.6으로 이미 설정되어 있음)를 삭제하고 다시 Import했습니다.-> 이번에는 리빌드가 시작되고 오류는 발생하지 않습니다.

이게 도움이 됐으면 좋겠는데

메이븐 이클립스 수입.문제를 '아까보다'에 과 같은 을 추가했습니다.pom.xml:

<properties>
   ...
   <maven.compiler.source>1.8</maven.compiler.source>
   <maven.compiler.target>1.8</maven.compiler.target>
</properties>

그런 다음 프로젝트의 컨텍스트 메뉴에서 "Maven -> Update Project ..."로 이동하여 OK를 누릅니다.

바로 그겁니다.이게 도움이 됐으면 좋겠다.

수정은 슈퍼클래스 메서드 에러는 어렵지 않습니다.Java 1.6 @Override 주석을 인터페이스 메서드와 함께 사용할 수 있기 때문에 Java 소스 버전을 1.6으로 변경하기만 하면 됩니다.소스 버전을 1.6으로 변경하려면 다음 절차를 따릅니다.

  1. [프로젝트], [우클릭], [프로퍼티]를 선택합니다.
  2. Java 컴파일러를 선택하고 "프로젝트 고유 설정 사용" 확인란을 선택합니다.
  3. 컴파일러 준거 레벨을 1.6으로 합니다.
  4. 변경 사항 적용

제 경우 위의 솔루션은 작동하지 않습니다.소스 코드를 다른 폴더에 체크 아웃해야 합니다.이클립스에서 [File]> [ Switch workSpaces ]> [ Other ]를 선택합니다.코드를 새 작업 공간에 Import합니다.그 후에 효과가 있습니다.

이 문제는 maven 프로젝트가 다른 컴파일러 컴플라이언스 수준을 사용하고 Eclipse IDE가 다른 컴파일러 컴플라이언스 수준을 사용하는 경우에 발생합니다.이 문제를 해결하려면 Maven 프로젝트의 컴파일러 컴플라이언스 수준을 IDE가 사용하는 수준으로 변경해야 합니다.

1) Eclipse IDE에서 Java 컴파일러 준거 수준의 사용을 확인하는 방법

*) 윈도 -> 프리퍼런스 -> 컴파일러 -> 컴파일러 컴플라이언스 수준 : 1.8 (또는 1.7, 1.6 등)

2) Java 컴파일러 Maven 프로젝트의 컴플라이언스 수준을 변경하려면

*) "프로젝트" -> "속성" -> "Java 컴파일러" 선택 -> 컴파일러 컴플라이언스 수준 변경: 1.8 (또는 1.7, 1.6 등)

2020년입니다.

프로젝트 > 오른쪽 클릭 > Java 컴파일러 > 컴파일러 컴플라이언스 수준 > 1.8 [또는 최신 수준]으로 변경

여기에 이미지 설명 입력

언급URL : https://stackoverflow.com/questions/1678122/must-override-a-superclass-method-errors-after-importing-a-project-into-eclips

반응형