Устареть в Java 1.6

В Java 1.5, чтобы объявить метод устаревшим, вы должны:

@Deprecated int foo(int bar) {
}

Компиляция этого в Java 1.6 приводит к следующему:

Синтаксическая ошибка, аннотации доступны только при уровне исходного кода 1.5.

Любые идеи?


person Ian Bishop    schedule 24.11.2009    source источник


Ответы (9)


Вы должны указать компилятору использовать 1.6:

javac -source 1.6

Или эквивалент для вашей системы IDE/сборки (как предлагали другие).

person gustafc    schedule 24.11.2009

Во-первых, это @Deprecated, а во-вторых, перепроверьте, действительно ли вы компилируете с помощью Java 1.6. Что вы используете? джавак? Затмение?

Если вы используете javac, убедитесь, что ваш JAVA_HOME указывает на JDK 6, а не на JDK 1.4.2. Если вы используете Eclipse (или любую IDE), щелкните правой кнопкой мыши проект > свойства > и найдите уровень компилятора.

person Bozho    schedule 24.11.2009
comment
Извините, исправил орфографическую ошибку. Вернемся к вам по другим вопросам. - person Ian Bishop; 24.11.2009

Синтаксическая ошибка, аннотации доступны только при уровне исходного кода 1.5

Это типичное сообщение об ошибке IDE. Вы настроили рабочую область или проект для использования уровня соответствия 1.4 или более ранней версии. Предполагая, что это Eclipse (это, по крайней мере, распознается как ошибка Eclipse), вам нужно перейти к Java > Compiler в настройках рабочей области и установить уровень соответствия компилятора. до версии 1.5 или новее. Вам также необходимо проверить это в записи Java Compiler в свойствах проекта.

person BalusC    schedule 24.11.2009

Если вы используете Eclipse IDE, то

1- Выберите свой проект в Project Explorer

2- Перейдите в Проект -> Свойства -> Компилятор Java.

3- Установите флажок «Включить настройки проекта».

4- Установите «Уровень соответствия компилятора» на «1.6».

ПРИМЕЧАНИЕ. Если уже установлено значение 1,6, измените его на 1,5.

5- Нажмите кнопку «Применить».

Есть проблемы с IDE, и иногда она просто не поддерживает выбранный по умолчанию уровень соответствия компилятора. Поэтому вам нужно переключить его и нажать кнопку «Применить», чтобы изменения вступили в силу.

person Imran Haidry    schedule 18.06.2012

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

У меня была такая же синтаксическая ошибка, я проверил соответствие рабочей области Java (Окно > Настройки > Java > Компилятор) и был удивлен, увидев уровень соответствия компилятору 1.6. Однако я заметил ссылку Настроить конкретные параметры проекта в верхней части этой страницы настроек. Ссылка ведет к собственным настройкам проекта.

Вы также можете перемещаться туда из главного меню. В этом случае Проект > Свойства > Компилятор Java. Существует флажок Включить настройки проекта, и в моем случае он был отмечен, и параметр был равен 1,4, хотя я не помню, чтобы он устанавливался явно. В любом случае, вы можете либо оставить для параметра соответствия значение по умолчанию для рабочего места, либо изменить параметр проекта на 1,5 или выше.

Это должно исправить синтаксическую ошибку.

person Achim Schmitz    schedule 13.03.2013

Я подозреваю, что у вас установлен исходный уровень ниже, чем 1,5. В целом, в Java 6 все должно быть хорошо.

Как вы компилируете? Если это с Eclipse, что говорят настройки вашего проекта/рабочей области в разделе Compiler/JDK Compliance Level?

Если вы используете javac, запустите

javac -version

чтобы проверить, какую версию вы действительно используете.

person Jon Skeet    schedule 24.11.2009

Вы уверены, что компилируете с помощью Java 1.6, а не 1.4 (или старше)? Какой компилятор вы используете?

person Grzegorz Oledzki    schedule 24.11.2009

@Deprecated не @Deprecate

Если вы используете Eclipse, убедитесь, что в настройках компилятора Java установлено соответствие версии 1.6.

person MarkPowell    schedule 24.11.2009

Это может произойти, даже если в eclipse используется java 1.6. Щелкните проект, а затем щелкните его правой кнопкой мыши. Перейдите в свойства и в разделе компилятора Java сначала установите флажок «Включить конкретный проект», а затем вручную выберите версию 1.6, даже если она уже есть по умолчанию. Это решило мою проблему.

person vincent mathew    schedule 05.09.2011