0

オプションのパラメーターを表すために省略記号を使用するのは良い考えですか?

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

複数の挿入を許可するための主キーを持たないDBテーブルに接続するコードを使用しています(レガシーコードなので、ここで悪い習慣を考えてください)。したがって、2つの方法(オーバーロード)を使用する代わりに、省略記号を使用して同じ効果を達成できる可能性があると考えていました。しかし、これはひどい習慣になると思いますか?

乾杯、

アレクセイブルー。

4

1 に答える 1

6

省略記号の適切な用語はvarargsです。Varargsを使用すると、開発者は可変数の引数を渡すことができます。

varargsを使用して1つのオプションの引数を提供することはお勧めできません。以下のコード例のようにオーバーロードを使用することをお勧めします。

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

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

このように、開発者は複数のブール値を渡すことはできませんが、何も渡すことはできません。

于 2012-07-17T11:13:53.057 に答える