是否可以将以下代码包装在可重用函数中?
编辑: 这只是一个例子,我想要一个适用于所有递归深度的工作解决方案
我想要的是生成以下代码:
if (MyObject o == null ||
o.getSubObject() == null ||
o..getSubObject().getSubSubObject() == null /*||
... */)
return defaultValue;
return o.getSubObject().getSubObject()/*...*/.getDesiredValue();
通过调用类似的东西
Object defaultValue = null;
Object result = NullSafeCall(o.getSubObject().getSubObject()/*...*/.getDesiredValue(), defaultValue);
第二个代码块只是一个想法,我不在乎它看起来如何,我想要的是,如果需要,我可以null
在调用更深层次的函数之前避免所有检查......
注射可以有效地做到这一点,但没有其他/更简单的解决方案吗?以前从来没有看过注射...
EDIT2: 另一种语言的示例:http: //groovy.codehaus.org/Operators#Operators-SafeNavigationOperator