Java はデフォルトのパラメータ値をサポートしていますか? 質問する

Java はデフォルトのパラメータ値をサポートしていますか? 質問する

次のような構造の Java コードを見つけました。

public MyParameterizedFunction(String param1, int param2)
{
    this(param1, param2, false);
}

public MyParameterizedFunction(String param1, int param2, boolean param3)
{
    //use all three parameters here
}

C++ ではパラメータにデフォルト値を割り当てることができることは知っています。例:

void MyParameterizedFunction(String param1, int param2, bool param3=false);

Java はこのような構文をサポートしていますか? この 2 段階の構文が望ましい理由はありますか?

ベストアンサー1

いいえ、あなたが見つけた構造は、Java がそれを処理する方法です (つまり、デフォルトのパラメータの代わりにオーバーロードを使用します)。

コンストラクターの場合、効果的なJava:プログラミング言語ガイドのオーバーロードが複雑になっている場合は、項目 1 のヒント (コンストラクターの代わりに静的ファクトリ メソッドを検討してください) を参照してください。他のメソッドについては、一部のケースの名前を変更するか、パラメーター オブジェクトを使用すると役立つ場合があります。

これは、区別が困難なほど複雑な場合です。明確なケースとしては、数とタイプだけでなく、パラメータの順序を使用して区別する必要がある場合が挙げられます。

おすすめ記事