我正在测试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文档):
--一个保证为空值并在表达式中使用的变量,它可能表示程序员忘记用它的实际值初始化变量。
激活了“变量有空值”的规则,这是该规则将捕获的代码示例(来自CPA文档):
public boolean myMethod(String param)
{
String tmp = null;
if (tmp.equals(param)) {
return true;
} else {
return false;
}
}我得到了这个例子,但是为什么它说我在setter中的参数是空的呢?
发布于 2012-01-17 20:24:28
对我来说好像是个虫子。如果它会说它可能为null,并且应该被检查,这是可能的。但是,除非使用已知的空值调用它(这是可能的,而且通常可以静态地找到),否则错误是没有意义的。但是,如果调用方提供了问题,那么错误标记就会被错误地放置。
一般情况下,我使用的是FindBugs --这是为了不发出错误警告而优化的,但在我的经验中效果很好。
https://stackoverflow.com/questions/8900286
复制相似问题