Работает ли @SuppressWarnings с предупреждениями, генерируемыми аннотациями? - PullRequest
1 голос
/ 07 марта 2012

Предположим, у меня есть аннотация, которая генерирует предупреждение.Аннотация относится к методу.

Например,

@AnnotationThatGeneratesAWarning
public void doSomething() {
  //stuff
}

Можно ли использовать @SuppressWarnings для его подавления?@SuppressWarnings работает с предупреждениями, генерируемыми аннотациями, или только с предупреждениями, генерируемыми самим методом?

Ответы [ 2 ]

3 голосов
/ 07 марта 2012

Какой IDE вы пользуетесь?Какой код генерирует предупреждение?Хорошая среда разработки обычно предлагает использовать String в @SuppressWarnings, но лучше сначала попытаться исправить предупреждение, если это невозможно, и в качестве последнего ресурса используйте @SuppressWarnings.

РЕДАКТИРОВАТЬ:

Вы можете сказать, что @SuppressWarnings не будет работать с другими аннотациями, глядя на его документация .Как вы можете видеть:

@Target(value={TYPE,FIELD,METHOD,PARAMETER,CONSTRUCTOR,LOCAL_VARIABLE})

Цели не включают ANNOTATION_TYPE, что означает, что @SuppressWarnings нельзя применять к другим аннотациям.

0 голосов
/ 07 марта 2012

Я протестировал следующее в Eclipse.Аннотации взяты из Spring MVC.

@SuppressWarnings("all")
@RequestMapping("/{foo}/somepage.do")
public void serveAPage() {

}

{foo} в @RequestMapping генерирует предупреждение, поскольку оно не присваивается переменной *.Описание предупреждения: «переменная шаблона URI« foo »не определена».

@SuppressWarnings("all") должно подавлять все предупреждения для метода.Eclipse по-прежнему показывает предупреждение, несмотря на это.

Насколько я могу судить, вы не можете использовать @SuppressWarnings для подавления предупреждений, вызванных аннотацией.

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

...