0

プロジェクトのコード スタイルをチェックするために、CodePro Anlaytix (Eclipse プラグイン) をテストしています。セッターの変数「titleParam」と「descParam」の「変数にnull値があります」とCPAは教えてくれます。

クラスは次のとおりです。

/**
 * 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 doc から)。

null 値を持つことが保証され、式で使用される変数は、プログラマーが実際の値で変数を初期化するのを忘れたことを示している可能性があります。

「Variable has null value」というルールがアクティブ化され、これはこのルールによってキャッチされるコードの例です (CPA doc から):

public boolean myMethod(String param)
{
    String tmp = null;
    if (tmp.equals(param)) {
        return true;
    } else {
        return false;
}   
}

例はわかりましたが、セッターのパラメーターが null であると表示されるのはなぜですか?

4

1 に答える 1

0

私にとってはバグのようです。nullである可能性があり、チェックする必要があると言う場合、それは可能です。しかし、別の場所で既知の null 値を使用して呼び出されない限り (これは可能であり、多くの場合、静的に見つけることができます)、エラーは意味がありません。ただし、発信者が問題を提供した場合は、単にエラー マーカーの位置が間違っています。

通常、私は FindBugs を使用します。これは、誤った警告を出さないように最適化されていますが、私の経験では非常にうまく機能します。

于 2012-01-17T20:24:28.607 に答える