在我的代码中,我有一个名为org.apache.tapestry5.json.JSONObject
的j
。
我想从该对象读取属性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
返回null,是否可以(自动)将j.opt()
设置为false?我想到的一件事是使用三元表达式,但这有多余的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"));