我有这样的功能:
doSomething(){
Object a = getA() //can return null
// a lot of additional code
}
...但是我想添加一个将对象a赋予方法的可能性,所以我创建了一个新方法:
doSomething(){
doSomething(null);
}
doSomething(Object a){
if(a == null){
a = getA()
}
}
但是这不正确,因为传递给方法的对象也可以为null然后我想要它为null,而不是使用getA()方法,所以我做了这样的事情:
doSomething(){
doSomething(null, false);
}
doSomething(Object a, boolean useObject){
if(!useObject){
a = getA()
}
但这看起来很难看。有更好的解决方案吗?
答案 0 :(得分:8)
怎么样:
doSomething()
{
Object a = getA();
doSomething(a);
}
doSomething(Object a)
{
}
这样,如果有人拨打doSomething(null)
,您就不会拨打getA()
。
答案 1 :(得分:0)
您可以测试a是否为空
doSomething(){
doSomething(null);
}
doSomething(Object a){
if(a != null){
a = getA()
}
}