Mam istniejący projekt, który używa @Override
metod, które zastępują metody interfejsu , zamiast metod nadklasy. Nie mogę tego zmienić w kodzie, ale chciałbym, aby Eclpse przestał narzekać na adnotację, ponieważ nadal mogę tworzyć za pomocą Maven.
Jak mam się zabrać do wyłączenia tego błędu?
Uwaga: ze względu na wymagania projektowe muszę skompilować dla Java 1.5.
java
eclipse
interface
annotations
syntax-error
Stefan Kendall
źródło
źródło
Odpowiedzi:
Używanie
@Override
adnotacji do metod, które implementują metody zadeklarowane przez interfejs, jest poprawne tylko od wersji Java 6. To błąd w Javie 5.Upewnij się, że projekty IDE są skonfigurowane do korzystania ze środowiska JRE Java 6 i że „zgodność źródła” jest ustawiona na 1.6 lub nowszą:
Pamiętaj, że Eclipse może zastąpić te ustawienia globalne dla konkretnego projektu, więc sprawdź je również.
Aktualizacja:
Błąd w Javie 5 nie dotyczy tylko Eclipse; użycie
javac
bezpośrednio z wiersza poleceń spowoduje ten sam błąd. To nie jest poprawny kod źródłowy Java 5.Można jednak określić tę
-target 1.5
opcję w JDK 6javac
, co spowoduje utworzenie pliku klasy wersji Java 5 z kodu źródłowego Java 6.źródło
Wykonaj następujące czynności:
Projekt -> Właściwości -> kompilator java ->
źródło
Sprawdź również, czy projekt ma aspekt. Wersja java może zostać tam zastąpiona.
źródło
Można włączyć ustawienia specyficzne dla projektu. Wybierz swój projekt
Project > Properties > Java Compiler
,uncheck
zEnable project specific settings
lub zmianęJdk 1.6
i powyżej, nie zapominając odpowiedniJRE
.Okrywać to nie działa, należy usunąć z projektu Eclipse, usuwać
.settings folders
,.project
,.classpath
pliki.clean and build the project, import it back into eclipse and then reset your Java compiler. Clean and build your project
i zaćmienie. U mnie to zadziałałoźródło
Możesz zmienić ustawienia kompilatora, aby akceptował składnię Java 6, ale generował dane wyjściowe Java 5 (o ile pamiętam). I ustaw "Zgodność generowanych plików klas" nieco niższą, jeśli jest to wymagane przez środowisko wykonawcze. Aktualizacja : sprawdziłem Eclipse, ale narzeka, jeśli ustawiłem zgodność źródła na 1.6 i zgodność klas na 1.5. Jeśli wersja 1.6 nie jest dozwolona, zwykle ręcznie komentuję obraźliwe adnotacje @Override w źródle (co nie pomaga w twoim przypadku).
Aktualizacja2: Jeśli budujesz tylko ręcznie, możesz napisać mały program, który kopiuje oryginalny projekt do nowego, usuwa adnotacje @Override ze źródeł java i po prostu wciska Wyczyść projekt w Eclipse.
źródło
Możesz także spróbować Retroweaver, aby utworzyć wersję Java5 z klas Java6.
źródło
Użyj Eclipse, aby wyszukać i zamienić (usunąć) wszystkie wystąpienia „@Override”. Następnie dodaj z powrotem zastąpienia niezwiązane z interfejsem za pomocą opcji „Wyczyść”.
Kroki:
źródło
Zrozumiałem twój problem, zmień swój jdk z jdk na większy niż 1.5
źródło
Skonfigurowanie, że projekty IDE są skonfigurowane do używania środowiska JRE Java 6 lub nowszego, czasami nie usuwa błędu zaćmienia. U mnie pomogło ponowne uruchomienie Eclipe IDE.
źródło
Nawet po zmianie ustawienia zgodności kompilatora na 1.6 lub 1.7 z zakładki Windows, potem prefernces, potem java, potem kompilator i ustawieniu zgodności kompilatora, nadal miałem ten problem. Chodzi o to, że musimy przejść do folderu projektu, kliknąć prawym przyciskiem myszy, Java i ustawić zgodność kompilatora na 1.6 lub wyższą. To zadziałało dla mnie.
źródło