2010-09-17 8 views
34

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

+0

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

+0

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 –

Odpowiedz

46

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

+0

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. –

3

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 ...

21

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

+0

Pomógł mi dużo na ADT17 –

6

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.

+0

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