在 Java 中键入空值
我在代码库中遇到了一个错误,我已经缩小到导致这种行为的原因。第一个测试用例失败,而最后两个测试用例成功。
@Test
public void testBooleanNull1() {
Boolean nullB = null;
assertFalse(Boolean.valueOf(nullB));
}
@Test
public void testBooleanNull2() {
String nullS = null;
assertFalse(Boolean.valueOf(nullS));
}
@Test
public void testBooleanNull3() {
assertFalse(Boolean.valueOf(null));
}
我知道这是一个重载方法,有两个变体,一个取a,另一个取一个类型的基元。Boolean.valueOf
String
boolean
我怀疑这是由于自动装箱而发生的,但我不确定是否如此,而且我不知道为什么被转换为据我所知不是有效的类型。null
Boolean
null
primitive
我已经转向使用 from ,我在这里问这个问题是为了更好地理解为什么行为是这样的。BooleanUtils
Apache Commons