Za każdym razem, gdy muszę ponownie zaimportować moje projekty do Eclipse (jeśli ponownie zainstalowałem Eclipse lub zmieniłem lokalizację projektów), prawie wszystkie moje zastąpione metody nie są poprawnie sformatowane, co powoduje błąd:
Metoda musi zastąpić metodę nadklasy
Warto wspomnieć, że z jakiegoś powodu dotyczy to projektów Androida, wartości argumentów metody nie zawsze są wypełniane, więc muszę je ręcznie wypełnić. Na przykład:
list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
//These arguments have their correct names
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
}
});
zostanie początkowo wypełniony w następujący sposób:
list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
//This methods arguments were not automatically provided
public void onCreateContextMenu(ContextMenu arg1, View arg2,
ContextMenuInfo arg3) {
}
});
Dziwne jest to, że jeśli usunę mój kod i jeśli Eclipse automatycznie odtworzy metodę, użyje tych samych nazw argumentów, które już miałem, więc tak naprawdę nie wiem, gdzie jest problem, poza tym, że automatycznie formatuje metodę mnie.
Staje się to dość uciążliwe, gdy trzeba ręcznie ręcznie odtworzyć WSZYSTKIE moje zastąpione metody. Jeśli ktoś może wyjaśnić, dlaczego tak się dzieje lub jak to naprawić. Byłabym bardzo szczęśliwa.
Może wynika to ze sposobu, w jaki formatuję metody zawarte w argumencie innej metody?
źródło
Odpowiedzi:
Domyślnie Eclipse to Java 1.5 i masz klasy implementujące metody interfejsu (które w Javie 1.6 mogą być opatrzone adnotacjami
@Override
, ale w Javie 1.5 mogą być stosowane tylko do metod zastępujących metodę nadklasy).Przejdź do preferencji projektu / IDE i ustaw poziom kompilatora Java na 1.6, a także upewnij się, że wybierasz JRE 1.6, aby uruchomić program z Eclipse.
źródło
Z Eclipse Galileo przechodzisz do elementu menu Eclipse -> Preferencje, a następnie w oknie dialogowym wybierasz Java i kompilator.
Teraz nadal może pokazywać poziom zgodności kompilatora na poziomie 1.6, ale nadal występuje ten problem. Więc teraz wybierz link „ Konfiguruj ustawienia specyficzne dla projektu ... ”, a tam zobaczysz, że projekt jest ustawiony na 1,5, teraz zmień to na 1.6. Musisz to zrobić dla wszystkich projektów, których dotyczy problem.
Ten bizantyjski interfejs menu / okna dialogowego jest typowy dla złego projektu interfejsu użytkownika Eclipse.
źródło
W przypadku, gdy zdarzy się to każdemu, kto spróbował zarówno metody alphazero, jak i Paula i nadal nie działał.
Dla mnie zaćmienie w jakiś sposób „buforowało” błędy kompilacji nawet po wykonaniu projektu> Wyczyść ...
Musiałem usunąć zaznaczenie opcji Projekt> Kompiluj automatycznie, a następnie wykonać projekt> Wyczyść, a następnie skompilować ponownie.
W razie wątpliwości spróbuj ponownie uruchomić Eclipse . To może naprawić wiele niezręcznych, niewytłumaczalnych błędów.
źródło
Aby rozwiązać ten problem, przejdź do właściwości projektu -> kompilator Java -> wybierz poziom zgodności kompilatora do 1.6-> Zastosuj.
źródło
Odpowiedź Paula działała na mnie częściowo. Wciąż miałem wtedy jeden błąd. Oprócz tego musiałem także przejść do Właściwości-> Aspekty projektu i tam ustawić wersję Java od 1.5 do 1.6.
Może to pomaga.
źródło
Chłopaki w moim przypadku żadne z powyższych rozwiązań nie zadziałało.
Musiałem usunąć pliki w obszarze roboczym projektu:
I folder:
Następnie skopiowałem te z podobnego projektu, który wcześniej działał. To udało się naprawić mój zepsuty projekt.
Oczywiście nie używaj tej metody przed wypróbowaniem poprzednich alternatyw !.
źródło
Jeśli nic z powyższych nie pomoże, upewnij się, że wybrano właściwe „ środowisko wykonywania ”, a nie „alternatywne środowisko JRE”.
Można znaleźć pod:
Wybierz
JRE System Library
i kliknijEdit...
.Jeśli wybrano „Alternatywne środowisko JRE ...”, zmień je na pasujące „Środowisko wykonawcze”, takie jak
JavaSE-1.8 (jre1.8.0_60)
. Nie mam pojęcia, dlaczego, ale to rozwiąże problem.źródło
To mój drugi raz, gdy napotykam ten problem. pierwszy raz zgodnie z zaleceniem alphazero zadziałało. ale po raz drugi ustawiłem na 1.6, to nie działa tak jak „CACHE” ten błąd po wyczyszczeniu i odbudowaniu.
Spróbuj wyłączyć „Kompiluj automatycznie”, jak powiedział Rollin_s -> błąd nadal tutaj!
Więc usunąłem problematyczny projekt (już ustawiony na 1.6) z Eksploratora pakietów i zaimportowałem go ponownie -> tym razem uruchomiłem odbudowę i tym razem nie wystąpił błąd
Mam nadzieję, że komuś to pomoże
źródło
Naprawa musi zastąpić błąd metody superklasy nie jest trudna, wystarczy zmienić wersję źródła Java na 1.6, ponieważ z Java 1.6 @Override można używać adnotacji wraz z metodą interfejsu. Aby zmienić wersję źródłową na 1.6, wykonaj następujące czynności:
źródło
W moim przypadku ten problem pojawił się, gdy zaimportowałem projekt Maven do Eclipse. Aby rozwiązać ten problem, dodałem
pom.xml
:Następnie w menu kontekstowym projektu przejdź do „Maven -> Aktualizuj projekt ...” i naciśnij OK.
Otóż to. Mam nadzieję że to pomoże.
źródło
W moim przypadku żadne z powyższych rozwiązań nie działa. Muszę pobrać mój kod źródłowy do innego folderu. Z zaćmienia wybierz Plik> Przełącz obszary robocze> Inne ..., a następnie zaimportuj kod do nowych obszarów roboczych. potem działa.
źródło
Dzieje się tak, gdy projekt maven używa innego poziomu zgodności kompilatora, a Eclipse IDE używa innego poziomu zgodności kompilatora. Aby to naprawić, musimy zmienić poziom zgodności kompilatora projektu Maven na poziom używany przez IDE.
1) Aby zobaczyć poziom zgodności z kompilatorem Java, używa w Eclipse IDE
*) Okno -> Preferencje -> Kompilator -> Poziom zgodności kompilatora: 1.8 (lub 1.7, 1.6 ,, ect)
2) Aby zmienić poziom zgodności kompilatora Java projektu Maven
*) Przejdź do „Projekt” -> „Właściwości” -> Wybierz „Kompilator Java” -> Zmień poziom zgodności kompilatora: 1.8 (lub 1.7, 1.6 ,, ect)
źródło