规模适合性测试中的空指针异常



创建一个scaleFitnessTest算法,该算法测试二进制值的适应度并使用权重(素数(,并在秤的"左侧"和"右侧"之间移动它们

实际规模适应度的逻辑有效,但在测试 null 参数时,我得到一个 nullpointer 异常

我试图满足的要求是:

在以下情况下,该方法应返回 -100:

1( 如果"代表"或"权重"的大小为零,或者如果其中之一 零。

2(如果"代表"的大小大于权重的数量。

我的代码如下

public static double ScalesFitness(ArrayList<Boolean> rep, ArrayList<Double> weights)   {
if( (rep.size() == 0 || weights.size() == 0) || (rep == null || weights == null) ) {
return (-100);
}
if (rep.size() > weights.size()) {
return(-100);
}
double lhs = 0.0,rhs = 0.0;
int n = rep.size();
for(int i=0;i<n;i++){
if (rep.get(i) == true) {
lhs = lhs + weights.get(i);
}else {
rhs = rhs + weights.get(i);
}
}

return(Math.abs(lhs-rhs));
}

如@jsheeran和@D.Lawrence所述,在调用size()之前检查null

最新更新