Встроенные аннотации дают синтаксические ошибки - PullRequest
11 голосов
/ 22 марта 2012

Мне нравятся новые проверки API Lint в ADT rev 17, но новая проверка правильности API поставила меня в тупик. У меня есть следующая строка кода:

listView.setOverScrollMode(OVER_SCROLL_NEVER);

Lint сообщает об этом:

Для вызова требуется уровень API 9 (текущий минимум 4)

Согласно документации , я должен просто добавить аннотацию над строкой, например:

@TargetApi(9)
listView.setOverScrollMode(OVER_SCROLL_NEVER);

Это, однако, дает синтаксическую ошибку в Java 1.6:

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

1 Ответ

5 голосов
/ 22 апреля 2012

Это не разрешено в Java (пока не будет добавлен JSR 308);Вы можете только комментировать классы, методы, поля, параметры и объявления переменных.Это последнее, что показано в документах.Однако для проверок на основе байт-кода, таких как проверка API, вам может потребоваться поместить его в метод или класс (или анонимный / внутренний класс).Быстрое исправление Add Annotation для этих предупреждений в lint должно работать правильно.

...