我真的厌倦了做所有的if null检查,resp。我还想为此提供一个更可配置的场景。让我通过一个例子来解释这一点:
我有一个getter()
可能返回null
或'0'
在两种情况下都返回的resp。setter()
不应该被称为通过getter()
。
所以实现是
if(getter() != null && !getter().equals('0')) setter(getter());
然而,这真的让我很烦恼,特别是如果getter()
并且setter()
是非常长的方法调用,我必须为此引入辅助变量。
我正在考虑一种带参数的方法
ifNotSet(getter(), setter(), new Object[null, '0']);
它做同样的事情。ifNotSet 的参数在哪里
- getter - 检查它是否不等于 条件之一的方法
- setter
setter(getter)
-如果条件不适用则调用的方法 - conditions
getter()
-对于要执行的方法,不得应用于评估的条件
乍一看,这似乎并不复杂,但它确实如此!有人知道这个问题的解决方案或任何类型的实现吗?
谢谢!
更新
在你们的反馈之后,我一直在研究这个问题,并发现了以下内容
private boolean ns(Object[] condition, Object getter) {
boolean ret = false;
for (Object object : condition) {
if(getter) equals or == ??
}
return true;
}
Object[] cond = new Object[] { null, "0" };
Object a;
if (ns(cond, a = getter()))setter(a);
好吧,如果您有很多分配要做,这似乎至少是一个解决方案。但是,如果你看一下ns()
方法......关于传入条件的问题是,是使用==
还是equals
进行比较!?