Mam denerwujący problem z adnotacjami @Override
w środowisku Eclipse. Często kiedy importuję projekty robocze na nowy komputer, Eclipse zaznacza niektóre adnotacje @Override
jako błędne. Jeśli usuwam adnotacje, wszystko jest w porządku, a Eclipse wskazuje również, że metody zastępują metody rodzica, ale dodanie adnotacji Zastąp powoduje błąd ponownie. Obecnie pracuję nad projektem Android, więc może to być problem z Androidem, a nie z Eclipse.Błąd z zastąpieniem adnotacji w środowisku Eclipse
Odpowiedz
Jest to najprawdopodobniej spowodowane przełączaniem między wersją Java 1.5 i Java 1.6. W wersji 1.5 nie można było oznaczać implementacji interfejsu za pomocą @Override, ale można to zrobić w wersji 1.6.
Szybkie wyszukiwanie Google okazało się to dobre wyjaśnienie różnicy w tej adnotacji między dwóch wersjach: http://www.techienuggets.com/CommentDetail?tx=38155
Semantyka @Override różni się JDK 1.5 JDK 1.6. W JDK 1.5 adnotacja @Override jest niedozwolona dla implementacji metod zadeklarowanych w interfejsie, podczas gdy one są dozwolone w JDK 1.6. Aby uzyskać więcej informacji, patrz:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5008260 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6399361 http://blogs.oracle.com/ahe/?entry=override
To jest fakt, że opis adnotacją nadpisywania nie została zaktualizowana w docs API JDK. Zostało zgłoszony jako błąd:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6501053bugdatabase/view_bug.do?bug_id=6501053
Przepraszam, ale tutaj, co można zrobić, aby pozbyć się tych błędów? Zaktualizowałem poziom zgodności kodu Java do wersji 1.6 i nadal widzę błąd, być może coś innego jest nie tak. –
Upewnij się, że używany pakiet Java SDK jest aktualny i że zaćmienie to należy użyć odpowiedniej wersji SDK (jeśli masz więcej niż jeden zainstalowany) i traktuje twój projekt Androida odpowiednią wersją SDK ...
po prostu pójść do
window -> prefrences -> java -> compiler
i ustawić go na 1,6 jako oznaczenie zaczyna się od 1.6, więc jeśli poziom compilence będzie mniejsza niż 1,6 to będzie podaje błąd
Pomógł mi dużo na ADT17 –
Istnieje kilka miejsc, w których skonfigurowano ustawienia Java Compiler.
Jednym ze sposobów jest Window->Preferences->Java->Compiler->Compiler Compliance Level -> set 1.6 or above
. Innym sposobem jest kliknięcie prawym na Project->Properties->Java Compiler->JDK Compliance -> Select 1.6 or above.
Również można odznaczyć „Włącz Projektu Ustawienia specyficzny”, to wyeliminować błędy zgodności przyszłych JDK kompilator. Usuń wiele instancji wersji JDK, chyba że wymagają tego różne projekty.
To rozwiązało mój problem. Moje preferencje Eclipse były na poziomie 1,6 i zawsze były, ale mój projekt jakoś spadł do 1,5. – kjl
możliwy duplikat ["Zignoruj metodę Superklasy" Błędy po zaimportowaniu projektu do Eclipse] (http://stackoverflow.com/questions/1678122/must-override-a-superclass-method-errors-importing -a-project-into-eclipse) – cHao
może pomóc wspomnieć o duplikacie pytania na http://stackoverflow.com/questions/1678122/must-override-a-superclass-method-errors-after-importing-a-project- do zaćmienia ... ale nie wiem, jak to oznaczyć jako takie –