0

我想知道使用省略号表示可选参数是否是个好主意?

public void update(Object object, boolean... checkFirst)
{
    if (checkFirst[0])
    {
        ...
    } //if
} //update

我正在使用连接到没有主键以允许多次插入的数据库表的代码(遗留代码,所以请原谅这里的任何不良实践想法)。因此,我认为我可以使用省略号来实现相同的效果,而不是使用两种方法(重载)。但你认为这是一种可怕的做法吗?

干杯,

阿列克谢蓝。

4

1 回答 1

6

省略号的正确术语是varargs。Varargs 允许开发人员传递可变数量的参数。

使用可变参数提供一个可选参数不是一个好主意。最好使用下面的代码示例中的重载

public void update(Object object)
{
    update(update, false);
}

public void update(Object object, boolean check)
{
    if (check)
    {
        ...
    } //if
}

这样,开发人员无法传入多个布尔值,但可以不传入任何值。

于 2012-07-17T11:13:53.057 回答