2012-03-07 78 views
1

假设我有一个生成警告的注释。注释在一个方法上。@SuppressWarnings是否可以处理由注释生成的警告?

例如

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

我可以用@SuppressWarnings来压制它吗? @SuppressWarnings是否可以处理由注释生成的警告,或者只是由方法本身生成的警告?

+0

您应该发布实际代码,注释的具体示例以及正在报告的警告。 – 2012-03-07 19:14:22

+0

我已经在下面的答案中发布了一个具体的例子。但问题不在于具体的实例。 – 2012-03-07 19:21:57

回答

3

你在用什么IDE?什么是生成警告的代码?一个好的IDE通常会建议在@SuppressWarnings中使用该字符串,但是最好先尝试修复该警告,如果这不可行并且作为最后一个资源使用@SuppressWarnings

编辑:

你可以告诉@SuppressWarnings不会与其他注释工作,寻找其documentation。正如你可以看到:

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

的目标做包括ANNOTATION_TYPE,这意味着@SuppressWarnings不能应用于其他的注释。

+0

我使用Eclipse,警告来自Spring MVC注释。 Eclipse没有建议如何抑制警告,但我能够很容易地修复代码。然而,这不是重点,我会编辑我的问题。 – 2012-03-07 18:53:32

+0

@CosmicFlame我更新了我的答案,我相信现在是你的问题的答案:) – 2012-03-07 20:25:41

+0

是的,这就是我一直在寻找的。谢谢! – 2012-03-08 09:48:19

0

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

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

} 

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

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

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

*这是最初引发问题的代码。修复代码以避免造成异常是微不足道的,而不是问题的关键。

相关问题