プロジェクトのコードスタイルをチェックするためにCodePro Anlaytix(Eclipseプラグイン)をテストしています。 CPAは、setterの変数 "titleParam"と "descParam"に "Variable has null value"があることを伝えます。ここでCodePro Analytix - 監査ルール「変数にNULL値がありません」
クラスです:
/**
* fdas fsda fsda fsa
* @version 1.0
*/
public class CodeProItem {
/**
* Field title.
*/
private String title;
/**
* Field desc.
*/
private String desc;
/**
* Method getTitle.
* @return String
*/
public String getTitle() {
return title;
}
/**
* Method setTitle.
* @param titleParam String
*/
public void setTitle(String titleParam) {
this.title = titleParam;
}
/**
* Method getDesc.
* @return String
*/
public String getDesc() {
return desc;
}
/**
* Method setDesc.
* @param descParam String
*/
public void setDesc(String descParam) {
this.desc = descParam;
}
}
ここで(CPAドキュメントからの)ルールの要約です:
null値を持つことが保証されており、 式で使用される変数は、プログラマが 変数をその実際の値で初期化するのを忘れたことを示している可能性があります。
ルールは、「変数がNULL値を持っている」活性化され、これは(CPAドキュメントから)このルールによってキャッチされることになるコードの例です、私は例を得る
public boolean myMethod(String param)
{
String tmp = null;
if (tmp.equals(param)) {
return true;
} else {
return false;
}
}
しかし、なぜsetterのパラメータがnullであるとは言いますか?
私はルールを無効にしました。セッターはどこにも呼び出されておらず、私のプロジェクトにはCodeProをテストするクラスが1つしかありませんでした。 CodeProはまだまだ興味深いですが、これはfindbugs、codestyle、metricsの間のマッシュです – mrmuggles