[英]What is the cleanest way to unwrap nested JSON values with Jackson in Java?
[英]Cleanest way to rewrite nested if
我有一些这样的代码:
public ClassName func(@Nullable ClassName instance){
ClassName returnVal = instance;
if(instance != null){
V1 v = instance.getV();
if(someCondition(v)){
returnVal = null;
}
}
return returnVal;
}
我试图找到一种方法来写得很好,嵌套的if
不是那么好。
其次,如果instance
为空,那么当我的意思是returnVal = null
时,执行returnVal = instance
可能会产生误导,所以这也是一些东西。
第三,如果someCondition(v)
是真的,那么我设置returnVal
为空,这样也并不理想,因为我设置returnVal = instance
在第一线,如果null
再次然后为空,我也这returnVal = null
,所以它的那种重复?
什么是重写这个最干净的方法,为什么?
反转第一个if
,并测试是否为null
。 然后你只需要一个 or 来测试someCondition
(并且可以返回null
)。 否则,您将返回原始instance
。 消除临时变量可以使代码更具可读性(但应在它们提高可读性时使用)。 把它放在一起,你可以写
public ClassName func(@Nullable ClassName instance) {
if (instance == null || someCondition(instance.getV())) {
return null;
}
return instance;
}
如果你想使用 Java Optional 来看看功能性,你可以试试
return Optional.ofNullable(instance)
.filter(instanceValue -> someCondition(instanceValue.getV()))
.orElse(null);
这正是 Elliott Frisch 的回答所说的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.