CodePro Analytix - 我没有得到审计规则“变量具有空值”

时间:2012-01-17 19:12:35

标签: java eclipse rule codepro

我正在测试CodePro Anlaytix(Eclipse插件)以检查项目中的代码样式。 CPA告诉我,变量“titleParam”和“descParam”中的“变量具有空值”。

这是班级:

/**
 * 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):

  

保证具有空值并在a中使用的变量   表达式可能表示程序员忘记初始化   变量及其实际值。

激活了“变量具有空值”规则,这是此规则捕获的代码示例(来自CPA doc):

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

我得到了这个例子,但是为什么它说我的setter中的参数是null?

1 个答案:

答案 0 :(得分:0)

对我来说这似乎是个错误。如果它会说它可能为空并且应该被检查,那是可能的。但除非在其他地方调用已知的空值(这是可能的并且通常可能静态地找出),否则错误就没有意义了。但是,如果调用者提出了问题,那么只需错误放置错误标记。

一般来说,我使用的是FindBugs - 它被优化为不提供错误警告,但在我的经验中效果非常好。