首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CodePro分析-我没有得到审计规则“变量有空值”

CodePro分析-我没有得到审计规则“变量有空值”
EN

Stack Overflow用户
提问于 2012-01-17 19:12:35
回答 1查看 269关注 0票数 0

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

这是一堂课:

代码语言:javascript
复制
/**
 * 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文档):

--一个保证为空值并在表达式中使用的变量,它可能表示程序员忘记用它的实际值初始化变量。

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

代码语言:javascript
复制
public boolean myMethod(String param)
{
    String tmp = null;
    if (tmp.equals(param)) {
        return true;
    } else {
        return false;
}   
}

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-17 20:24:28

对我来说好像是个虫子。如果它会说它可能为null,并且应该被检查,这是可能的。但是,除非使用已知的空值调用它(这是可能的,而且通常可以静态地找到),否则错误是没有意义的。但是,如果调用方提供了问题,那么错误标记就会被错误地放置。

一般情况下,我使用的是FindBugs --这是为了不发出错误警告而优化的,但在我的经验中效果很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8900286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档