添加和使用新参数来运行

时间:2015-02-17 10:26:50

标签: java

我有这样的功能:

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()
  } 

但这看起来很难看。有更好的解决方案吗?

2 个答案:

答案 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()
  }
}