1
我经常发现自己在那里我有一个这样的方法签名情况:在Java中重载方法时,您在哪里计算附加参数数据?
public returnType doStuff(mandatoryParam, calculableParam1, calculableParam2);
在这种情况下,我有时候想支持这些不同的方法签名:
public returnType doStuff(mandatoryParam);
public returnType doStuff(mandatory, calculable1);
public returnType doStuff(mandatory, calculable2);
public returnType doStuff(mandator, calculable1, calculable2);
在做超载这样的,是否更好地让超载传递给基本方法是这样的:
public returnType doStuff(mandatoryParam){
doStuff(mandotryParam, null, null)
}
public returnType doSTuff(mandatoryParam, calculable1, calculable2){
if(null == calculable1){
calculable1 = calculate();
}
.
.
.
}
或者是计算更好吗? e可计算参数,然后将它们传递给像这样的基本方法:
public returnType doStuff(mandatoryParam){
Calculable calc1 = figureItOut1();
Calculable calc2 = figureItOut2();
doStuff(mandotryParam, calc1, calc2);
}
这取决于。你是否想要更长的重载支持空引用,默认方式与其他引用相同? – 2013-03-15 22:04:34
此外,你绝对的意思是超载,而不是按照你的头衔重写。 – 2013-03-15 22:06:23
确实。我绝对意味着超载。错字 – David 2013-03-15 22:10:54