Optional特性取代判断Null的if else
Optional.ofNullable(jsonNode).map(x -> x.get("appId").asText()).orElse("orelse");
ofNullable内容
Application applcation1 = null;
String a1 = Optional.ofNullable(applcation1).map(x ->x.getDisplayName()).orElse("orelse");
String a2 = Optional.ofNullable(applcation1.getIcon()).orElse("orelse");
System.out.println(a1);
System.out.println(a2);
- optional只可以使用optional.ofNullable(x)
- x只能为null
- x为null情况下不可以x.get(“data”)
map内容
Optional.ofNullable(jsonNode).map(x -> x.get("appId").asText()).orElse("orelse");
- 使用map(x -> x.get(“appId”)时
- 在确保x不为空或者x已经在nullable里面时
- 如果x.get内容为空也可以
结论:
如果想要通过OfNullable获取类的一层一层内容x.get().get()时
最好的办法就是ofNull为最顶层,然后map一层一层嵌套获取
如果某一层没获取到就走orelse()
切记使用ofNullable的时候(jsonNode.get(A)时,最好不要使用get,会直接NPE)