@SuppressWarnings是否与注释生成的警告一起使用?

时间:2012-03-07 18:05:45

标签: java annotations warnings suppress-warnings

假设我有一个生成警告的注释。注释是在一个方法上。

e.g。

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

我可以使用@SuppressWarnings来抑制它吗? @SuppressWarnings是否适用于注释生成的警告,或仅适用于方法本身生成的警告?

2 个答案:

答案 0 :(得分:3)

您使用的是什么IDE?什么是产生警告的代码?一个好的IDE通常会建议在@SuppressWarnings中使用String,但最好先尝试修复警告,如果不可能,最后一个资源使用@SuppressWarnings

编辑:

您可以告诉@SuppressWarnings无法使用查看其documentation的其他注释。如你所见:

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

目标包含ANNOTATION_TYPE,这意味着@SuppressWarnings无法应用于其他注释。

答案 1 :(得分:0)

我在Eclipse中测试过以下内容。注释来自Spring MVC。

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

}

{foo}中的@RequestMapping生成警告,因为它未被分配给变量*。警告描述是“URI模板变量”foo“未定义”。

@SuppressWarnings("all")应该取消该方法的所有警告。尽管如此,Eclipse仍会显示警告。

据我所知,您无法使用@SuppressWarnings来抑制由注释引起的警告。

*这是最初提出问题的代码。修复代码使其不会导致异常是微不足道的,而不是问题的重点。