我根据另一个问题编写了一个非常简单的代码,它是:
丢给我一个错误
java.lang.NullPointerException第5和17行
我不知道我在做什么错。
public class Main {
public static String bool(Boolean param){
if(param == true){ (line 5)
return "a";
}else if(param == false){
return "b";
}
return "c";
}
public static void main(String[] args){
System.out.println(bool(true));
System.out.println(bool(null)); (line 17)
System.out.println(bool(false));
}
}
null
无法自动拆箱为原始boolean
值,当您尝试与进行比较时会发生这种情况true
。在
param == true
类型true
为boolean
,因此左侧操作数也必须为boolean
。您正在传入Boolean
,这是一个对象,但可以自动拆箱到boolean
。
因此,这相当于
param.booleanValue() == true
显然,如果param
是null
,则以上抛出NullPointerException
。
为了避免自动拆箱的隐藏陷阱,您可以改用以下Boolean
对象:
if (Boolean.TRUE.equals(param))
return "a";
if (Boolean.FALSE.equals(param))
return "b";
return "c";
问题内容: 哪种列类型最适合在MySQL数据库中使用布尔值?我用,但我的同事用。 问题答案: 这些数据类型是同义词。
到目前为止我们看到的类型都能表示很大范围的数据,整数多的是,而浮点数更多。相对而言,字符集的规模小的多。C++中还有一个类型表示的范围更小,即布尔类型,它只能表示true和false两个值。 虽然没提到过该类型,但我们前面几章中实际已经使用过布尔值了。if语句和while语句中的条件就是布尔表达式。比较操作符的结果也是布尔值。例如: if (x == 5) { // 进行某些处理 } ==操
原文: http://exploringjs.com/impatient-js/ch_booleans.html 基本类型 _ 布尔 _ 包含两个值 - false和true: > typeof false 'boolean' > typeof true 'boolean' 14.1。转换为布尔值 这三种方法可以将任意值x转换为布尔值。 Boolean(x) 最具描述性;推荐的。 x ?
我发现了这个语法: 这个有两个点的语法是什么:叫? 在哪里可以找到有关它的信息? 它是仅适用于布尔值还是以其他不同的方式实现?
我公开了一个使用另一个SOAP服务的服务。我得到了JAXB生成的服务模型。当我使用服务时,数据被设置到与此模型相关的对象中。我定义了自己的域模型,它与JAXB模型具有完全相同的类集,但没有xml注释等。我使用dozer来执行数据映射。当标记为注释(nillable=true)的某些布尔元素为null时,我的域模型中的目标对象布尔对象将设置为默认的true或false值。我希望它保留相同的空值。布尔
问题内容: 我有些困惑:我有一个函数,该函数以Object作为参数。但是,即使我只是传递一个原语,甚至将布尔原语识别为布尔对象,编译器也不会抱怨。为什么呢? 问题答案: 因为原始的’ ‘将被自动 装箱 到并且是一个。