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)
| 归档时间: |
|
| 查看次数: |
123 次 |
| 最近记录: |