2012-03-07 5 views
1

警告を生成するアノテーションがあるとします。アノテーションはメソッド上にあります。@SuppressWarningsは注釈によって生成された警告に対応していますか?

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

これを抑制するために@SuppressWarningsを使用できますか? @SuppressWarningsは、注釈によって生成された警告、またはメソッド自体によって生成された警告だけで動作しますか?

+0

実際のコード、注釈の具体例と報告されている警告を掲載する必要があります。 –

+0

以下の答えに具体的な例を掲載しました。しかし、問題は特定のインスタンスについてではありません。 –

答えて

3

どのIDEを使用していますか?警告を生成するコードは何ですか?良いIDEは一般的に@SuppressWarningsで使用する文字列を提案しますが、それが不可能で最後のリソースとして@SuppressWarningsを使用する場合は、最初に警告を修正することをお勧めします。

EDIT:

あなたは@SuppressWarningsはそのdocumentationを見て他の注釈では動作しないことを伝えることができます。あなたが見ることができるように:

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

をターゲットはないを行う@SuppressWarningsは、他の注釈には適用できないことを意味し、ANNOTATION_TYPEが含まれます。

+0

私はEclipseを使用していますが、警告はSpring MVCアノテーションから来ています。 Eclipseは警告を抑制する方法を示唆していませんでしたが、コードを簡単に修正することができました。それは本当にポイントではありません - 私は私の質問を編集します。 –

+0

@CosmicFlame私は私の答えを更新しました、私は今あなたの質問への答えだと信じています:) –

+0

うん、それは私が探していたものです。ありがとう! –

0

私はEclipseで次のことをテストしました。アノテーションはSpring MVCからのものです。

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

} 

それは*変数に代入されていないよう@RequestMapping{foo}が警告を生成します。警告の説明は "URIテンプレート変数" foo "が定義されていません"です。

@SuppressWarnings("all")は、メソッドのすべての警告を抑制する必要があります。これにもかかわらず、Eclipseにはまだ警告が表示されます。

私が知る限り、@SuppressWarningsを使用して、注釈による警告を抑制することはできません。

*これはもともと質問を促したコードです。例外が発生しないようにコードを修正するのは簡単で問題のポイントではありません。

関連する問題