Почему Eclipse жалуется на @Override на методах интерфейса?

В большинстве случаев вы можете просто сделать это:

moment.tz("2013-08-26 16:55:00", "America/Los_Angeles")

Если вам требуется ввод, отличный от ISO8601, укажите строку формата в качестве второго параметра и часовой пояс в качестве третьего:

moment.tz("8/26/2013 4:55 pm", "M/D/YYYY h:mm a", "America/Los_Angeles")

И если вам нужно использовать режим «строгого разбора» момента, то он переходит к третьему параметру, а часовой пояс перемещается на четвертую позицию:

moment.tz("8/26/2013 4:55 pm", "M/D/YYYY h:mm a", true, "America/Los_Angeles")
132
задан xyz 13 October 2014 в 05:38
поделиться

4 ответа

Использование аннотации @Override в методах, реализующих методы, объявленные интерфейсом, допустимо только начиная с Java 6 и далее. Это ошибка Java 5.

Убедитесь, что ваши проекты IDE настроены на использование Java 6 JRE, и что "исходная совместимость" установлена ​​на 1.6 или выше:

  1. Откройте диалоговое окно Window> Preferences
  2. Перейдите к Java> Compiler.
  3. Здесь установите «Уровень соответствия компилятора» на 1.6.

Помните, что Eclipse может переопределять эти глобальные настройки для конкретного проекта, поэтому проверьте и их.


Обновление:

Ошибка в Java 5 возникает не только в Eclipse; использование javac непосредственно из командной строки даст вам ту же ошибку. Это недействительный исходный код Java 5.

Однако вы можете указать -target 1. 5 для JDK 6 javac , который создает файл класса версии Java 5 из исходного кода Java 6.

266
ответ дан 24 November 2019 в 00:08
поделиться

Вы можете изменить настройки компилятора, чтобы принимать синтаксис Java 6, но генерировать вывод Java 5 (насколько я помню). И установите «Совместимость сгенерированных файлов классов» немного ниже, если это необходимо для вашей среды выполнения. Обновление : я проверил Eclipse, но он жалуется, если я установил совместимость исходного кода на 1.6 и совместимость классов на 1.5. Если версия 1.6 не разрешена, я обычно вручную комментирую оскорбительные аннотации @Override в источнике (что не помогает в вашем случае).

Update2: Если вы выполняете только ручную сборку, вы можете написать небольшую программу, которая копирует исходный проект в новый, удаляет аннотации @Override из источников java, и вы просто нажимаете «Очистить проект» в Eclipse.

7
ответ дан 24 November 2019 в 00:08
поделиться

Вы также можете попробовать Retroweaver для создания версии Java5 из классов Java6.

1
ответ дан 24 November 2019 в 00:08
поделиться

Сделайте следующее:

Проект -> Свойства -> компилятор java ->

  • Включить проект конкретные настройки - «да»
  • Соответствие компилятору - 1.6
  • сгенерированные файлы классов и совместимость с исходным кодом - 1.5
37
ответ дан 24 November 2019 в 00:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: