@ Override Snafu - PullRequest
       50

@ Override Snafu

1 голос
/ 28 сентября 2010

Я создал файл проекта / класса в Eclipse Helios, используя JDK1.6.Я позволил затмению сгенерировать код для класса реализации интерфейса.

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 .

После поиска в Google я узнал, что есть что-то вроде OVERRIDE_SNAUF - где 6.0 Java-компилятор был обновлен, чтобы разрешить @Override при реализации метода интерфейса.

Ответы [ 3 ]

1 голос
/ 28 сентября 2010

Не могу найти вопрос, но - да, вы правы, аннотация @Override не позволяла аннотировать переопределенные методы интерфейса в Java 5. Поэтому вам придется удалить эти аннотации, если вы хотите скомпилироватькод с Java 5.

1 голос
/ 28 сентября 2010

@ Переопределение подходит для проверки синтаксиса переопределения на этапе компиляции, поэтому оно также применяется к интерфейсу по той же причине.

0 голосов
/ 28 сентября 2010

Вы можете установить параметры компилятора на уровень соответствия 1.5, даже если у вас есть jdk 1.6.Таким образом, код, сгенерированный eclipse, будет совместим с Java 1.5 (он не добавит аннотацию @Override для методов, реализующих интерфейс).Я думаю, что на самом деле вы можете установить его так, чтобы вообще никогда не помещать аннотацию @Override.

Ну, на самом деле это немного сложнее.Для полной совместимости вы должны установить JDK 1.6 и JDK 1.5 и установить каждый из них в качестве JDK по умолчанию для их уровня соответствия.Это лучший способ обеспечить полную обратную совместимость вашего кода.

В окне настроек (общих или для конкретного проекта) перейдите на Java-> Compiler и установите там уровень соответствия.Также в Java-> Установленные JRE добавьте JDK 1.5, а затем в Java-> Установленные JRE-> Среды выполнения нажмите J2SE-1.5 и проверьте недавно установленный JDK 1.5.Это гарантирует, что eclipse будет использовать поведение компилятора, а также стандартную библиотеку, поставляемую с JDK 1.5, если ваш проект или рабочее пространство настроено на использование этого уровня соответствия.

...