在我的代码中,我有一个名为org.apache.tapestry5.json.JSONObjectj
我想从该对象读取属性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"));

10-08 13:03