如何在Java中将null转换为false?

Edw*_*ard 2 java ternary-operator isnull nullpointerexception

在我的代码中,我有一个org.apache.tapestry5.json.JSONObject名字j.我想use-name从该Object 读取属性:

Boolean isUseName       = (Boolean) j.opt("use-name");
Run Code Online (Sandbox Code Playgroud)

值可以是true,false或null(如果JSONObject中不存在该条目).现在我想用isUseName一个条件语句:

if(!isUseName) {System.out.println("No Name to be used.")}
Run Code Online (Sandbox Code Playgroud)

如果"use-name"不在JSONObject中,这会给我一个NullPointerException.一种方法是简单地先检查是否isUseName为空,例如

if(isUseName != null && !isUseName) {System.out.println("No Name to be used.")}
Run Code Online (Sandbox Code Playgroud)

我想知道,如果有更优雅的方式.isUseName如果j.opt()返回null ,是否可以(自动)设置为false ?我想到的一件事是使用三元表达式,但这有多余j.opt("use-name"):

Boolean isUseName = (j.opt("use-name") != null)
                  ? (Boolean) j.opt("use-name")
                  : false;
Run Code Online (Sandbox Code Playgroud)

Sva*_*nte 12

你可以比较Boolean.TRUE:

boolean useName = Boolean.TRUE.equals (j.opt ("use-name"));
Run Code Online (Sandbox Code Playgroud)