都元ダイスケ IT-PRESS このページをアンテナに追加 RSSフィード Twitter

最近は会社ブログしか書いてません。

2009-09-17

[]敢えて規約を破るケース(FindBugsの警告抑制)

の情報も探してみた。が、こちらは結構難しい。

Checkstyleは、*.javaを解析してチェックします。なので、コメントに反応できる。しかしFindBugsコンパイル後の *.class がチェック対象です。なのでコメントでFindBugsを制御することはできません。

従って、FindBugsではアノテーションによる警告抑制手段を用意しているようです。

@edu.umd.cs.findbugs.annotations.SuppressWarnings(
    value="EQ_COMPARETO_USE_OBJECT_EQUALS", 
    justification="because I know better")

http://stackoverflow.com/questions/249536/when-using-eclipse-with-findbugs-can-you-mark-a-bug-as-not-a-bug-and-have-it-remo

justification要素で「この抑制が正当である理由」を記述できるのが++ですね。

ただ、java.lang.SuppressWarnings と単純名がカブっているので、完全修飾名で書くことが奨められているようです。


しかし、ここで気になるのがライセンスFindBugsLGPLで配布されるオープンソースプロダクトです。自分で書いたコードをFindBugsで「調査する」だけであれば、このコードはFindBugsに依存することはないので、LGPLによる制約は受けません。

しかし、FindBugsによって定義されたアノテーションをコード内に書く(依存する、つまりFindBugsがなければコンパイルできない)となると話は違ってくるのではないだろうか。

と思って使用に踏み切れない。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト

コメントを書くには、なぞなぞ認証に回答する必要があります。

トラックバック - http://d.hatena.ne.jp/daisuke-m/20090917/1253165278