如何设置默认方法参数值?
这个问题在这里已经有了答案:
你可以通过重载方法来完成。
public int doSomething(int arg1, int arg2)
{
return 0;
}
public int doSomething()
{
return doSomething(defaultValue0, defaultValue1);
}
通过创建这个无参数方法,您允许用户使用在无参数方法的实现中提供的默认参数来调用parameterfull方法。 这被称为重载该方法。
如果你的参数是相同的类型,你可以使用可变参数:
public int something(int... args) {
int a = 0;
int b = 0;
if (args.length > 0) {
a = args[0];
}
if (args.length > 1) {
b = args[1];
}
return a + b
}
但是这样你就失去了单个参数的语义,或者
有一个重载的方法将呼叫转接到参数化版本
public int something() {
return something(1, 2);
}
或者如果该方法是某种初始化过程的一部分,则可以改为使用构建器模式:
class FoodBuilder {
int saltAmount;
int meatAmount;
FoodBuilder setSaltAmount(int saltAmount) {
this.saltAmount = saltAmount;
return this;
}
FoodBuilder setMeatAmount(int meatAmount) {
this.meatAmount = meatAmount;
return this;
}
Food build() {
return new Food(saltAmount, meatAmount);
}
}
Food f = new FoodBuilder().setSaltAmount(10).build();
Food f2 = new FoodBuilder().setSaltAmount(10).setMeatAmount(5).build();
然后与Food对象一起工作
int doSomething(Food f) {
return f.getSaltAmount() + f.getMeatAmount();
}
构建器模式允许您稍后添加/删除参数,您无需为它们创建新的重载方法。
不。Java不支持像C ++这样的默认参数。 你需要定义一个不同的方法:
public int doSomething()
{
return doSomething(value1, value2);
}
链接地址: http://www.djcxy.com/p/20861.html