Я создал файл проекта/класса в Eclipse Helios, используя JDK1.6. Я позволил затмению генерировать код для класса реализации интерфейса.@Override Snafu
public interface Foo {
void bar();
}
public class FooImpl implements Foo {
@Override
public void bar() {
}
}
Пока все хорошо. Теперь по какой-то причине я импортировал проект в Eclipse, который имеет JDK 1.5
, и я вижу сообщение об ошибке The method bar() of type FooImpl must override a superclass method
с быстрым исправлением до . Удалите аннотацию @Override.
После поиска в Интернете, я узнал, что есть что-то вроде OVERRIDE_SNAUF - где 6.0 Java-компилятор был обновлен, чтобы позволить @Override реализовать реализации интерфейса.
Я не специалист по Java, но вы не переопределяете методы, так как интерфейс не обеспечивает реализацию, но, я думаю, вы поняли это сами. Тогда в чем вопрос? Просто вслух? – Novikov
В чем вопрос? Как получить согласованное поведение между Java 6 и Java 5. Возможно, проверьте http://stackoverflow.com/questions/2135975/can-i-get-java-5-to-ignore-override-errors. Но почему вы используете Java 5? –