Встроенные аннотации дают синтаксические ошибки

Я люблю новые проверки 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

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