如何在Java中将null变成false?
在我的代码中,我有一个名为j
的org.apache.tapestry5.json.JSONObject
。 我想从该对象读取属性use-name
:
Boolean isUseName = (Boolean) j.opt("use-name");
该值可以是true,false或null(如果条目不存在于JSONObject中)。 现在我想使用isUseName
作为条件语句:
if(!isUseName) {System.out.println("No Name to be used.")}
如果“use-name”不在JSONObject中,这会给我一个NullPointerException。 一种方法是首先检查isUseName
是否为空,例如
if(isUseName != null && !isUseName) {System.out.println("No Name to be used.")}
我想知道,如果有更优雅的方式。 是否可以(自动)将isUseName
设置为false,如果j.opt()
返回null? 我想到的一件事是使用三元表达式,但它有一个多余的j.opt("use-name")
:
Boolean isUseName = (j.opt("use-name") != null)
? (Boolean) j.opt("use-name")
: false;
你可以用Boolean.TRUE
进行比较:
boolean useName = Boolean.TRUE.equals (j.opt ("use-name"));
逻辑表达式短路,所以如果您先检查null
,那么您可以在检查后使用它:
if(isUseName != null && !isUseName) {
// It's not null, and false
System.out.println("No Name to be used.");
}
要么
if(isUseName == null || !isUseName) {
// It's null or false
System.out.println("No Name to be used.");
}
和类似地
if(isUseName != null && isUseName) {
// It's not null, and true
}
和
if(isUseName == null || isUseName) {
// It's either null or true
}
如何检查密钥是否存在
boolean useName = j.has("use-name") ? j.getBoolean("use-name") : false;
链接地址: http://www.djcxy.com/p/76155.html
上一篇: How to turn null into false in Java?
下一篇: Getting NullPointerException calling methods on null values unmarshalled by JAXB