我有这样的功能:
doSomething(){
Object a = getA() //can return null
// a lot of additional code
}
Run Code Online (Sandbox Code Playgroud)
...但我想添加一个方法给对象一个方法,所以我创建了一个新的方法:
doSomething(){
doSomething(null);
}
doSomething(Object a){
if(a == null){
a = getA()
}
}
Run Code Online (Sandbox Code Playgroud)
但这是不正确的,因为传递给方法的对象也可以为null然后我想要它为null,而不是使用getA()方法,所以我做了这样的事情:
doSomething(){
doSomething(null, false);
}
doSomething(Object a, boolean useObject){
if(!useObject){
a = getA()
}
Run Code Online (Sandbox Code Playgroud)
但这看起来有点难看.有更好的解决方案吗?
怎么样 :
doSomething()
{
Object a = getA();
doSomething(a);
}
doSomething(Object a)
{
}
Run Code Online (Sandbox Code Playgroud)
这样,如果有人打电话给doSomething(null)你,请不要打电话getA().