【发布时间】:2020-12-12 14:21:58
【问题描述】:
我在写 这是我目前所拥有的:
import java.util.Scanner;
ew Boolean[count];
}
}
我在哪里
【问题讨论】:
-
请问您为什么从问题中删除了您的代码?和大部分文字。在您这样做之前,这是一个很好的问题。
标签: java arrays methods boolean
我在写 这是我目前所拥有的:
import java.util.Scanner;
ew Boolean[count];
}
}
我在哪里
【问题讨论】:
标签: java arrays methods boolean
Boolean[] 和 boolean[] 不一样。将Boolean[] vegetarian = new Boolean[count]; 更改为boolean[] vegetarian = new boolean[count]; 即可。
解释:
Boolean 是原语boolean 的包装类。因此,可以写
boolean b1 = true;
Boolean booleanObject = b;
boolean b2 = booleanObject;
这种行为称为Autoboxing and -unboxing。然而,即使数组是covariant,它们也只在对象层次结构内是协变的,与包装器类型无关。这就是不能将Boolean[] 分配给boolean[] 的原因,反之亦然。
【讨论】:
您正在使用布尔值,这是一个对象。您不能直接将布尔对象与布尔基元进行比较。
尝试使用getVegetarian.booleanValue(), 这会起作用!
if (list[i].booleanValue() == true) {
count++;
}
顺便说一句,你不必写getVegetarian.booleanValue()==true, getVegetarian.booleanValue() is enough :-)
【讨论】: