我想知道是否使用省略号来表示可选参数是个好主意?
public void update(Object object, boolean... checkFirst)
{
if (checkFirst[0])
{
...
} //if
} //update
Run Code Online (Sandbox Code Playgroud)
我正在使用连接到没有主键的数据库表的代码来允许多次插入(遗留代码所以请原谅任何不良做法的想法).因此,我没有使用两种方法(重载),而是认为我可以使用省略号来实现相同的效果.但你认为这会是一种可怕的做法吗?
干杯,
阿列克谢蓝.
省略号的正确用语是varargs.Varargs允许开发人员传递可变数量的参数.
使用varargs提供一个可选参数不是一个好主意.最好使用重载,如下面的代码示例所示.
public void update(Object object)
{
update(update, false);
}
public void update(Object object, boolean check)
{
if (check)
{
...
} //if
}
Run Code Online (Sandbox Code Playgroud)
这样开发人员无法传入多个布尔值,但允许传入任何布尔值.