Встроенные аннотации дают синтаксические ошибки
Мне нравятся новые проверки API Lint ADT rev 17, но новая проверка правильности API поставила меня в тупик. У меня есть следующая строка кода:
listView.setOverScrollMode(OVER_SCROLL_NEVER);
Линт сообщает по этой строке:
Вызов требует API уровня 9 (текущий min равен 4)
Согласно документации , я должен просто иметь возможность добавить аннотацию над строкой, например:
@TargetApi(9)
listView.setOverScrollMode(OVER_SCROLL_NEVER);
Это, однако, дает синтаксическую ошибку в Java 1.6:
Синтаксическая ошибка ВКЛ. токен (ы), неуместная конструкция(ы)
1 ответ:
Это запрещено в Java (до тех пор, пока/если JSR 308 не будет добавлен); вы можете только аннотировать классы, методы, поля, параметры и объявления переменных. Это последнее, что показано в документах. Однако для проверок на основе байт-кода, таких как проверка api, вам может потребоваться поместить его в метод или класс (или Анонимный/внутренний класс). Добавление аннотации quickfix для этих предупреждений в lint должно делать правильные вещи.