Java のデフォルトパラメータ

Mohammad Irfan 2023年10月12日
  1. Java のデフォルトパラメータ
  2. Java で var-args を使用してデフォルトパラメータを設定する
  3. Java でデフォルトパラメータを空の文字列として設定する
  4. Java で任意の数の引数を持つ var-args を使用してデフォルトパラメータを設定する
Java のデフォルトパラメータ

このチュートリアルでは、Java でデフォルトパラメータを実装する方法を紹介します。

値が渡されない場合は、デフォルトのパラメーターが使用されます。メソッドが複数の引数を受け入れるときに、制限された引数を渡したい場合に役立ちます。たとえば、メソッドは 3つの引数を受け入れますが、メソッド呼び出し中に 2つの引数のみを渡したい場合、Java コンパイラは 3 番目の引数のデフォルト値を使用してコンパイルエラーを回避します。

Java はデフォルトのパラメータ値をサポートしていませんが、var-args やメソッドのオーバーロードなどのいくつかの組み込みソリューションを使用してそれを実現できます。いくつかの例を見てみましょう。

Java のデフォルトパラメータ

この例では、メソッドオーバーロードアプローチを使用してデフォルトのパラメーター値を設定します。ただし、これは優れたソリューションではありませんが、代替手段として使用できます。add() メソッドを呼び出すときに、デフォルト値として 0 を渡すことに注意してください。

同じタイプのオプションのパラメーターが 2つある場合、このアプローチは機能せず、いずれも省略できます。

public class SimpleTesting {
  int add(int a, int b) {
    return a + b;
  }
  int add(int a, int b, int c) {
    return a + b + c;
  }
  public static void main(String[] args) {
    SimpleTesting test = new SimpleTesting();
    int val1 = 10;
    int val2 = 20;
    int result1 = test.add(val1, 0);
    int result2 = test.add(val1, 0, val2);
    System.out.println("resutl1 : " + result1);
    System.out.println("resutl2 : " + result2);
  }
}

出力:

resutl1 : 10
resutl2 : 30

Java で var-args を使用してデフォルトパラメータを設定する

これは、可変引数機能を使用してデフォルトのパラメーターを設定する別のアプローチです。var-args を使用すると、同じタイプの可変長の引数を渡すことができます。以下の例を参照してください。

public class SimpleTesting {
  int add(int a, int... b) {
    int b2 = b.length > 0 ? b[0] : 0;
    return a + b2;
  }
  int add(int a, int b, int c) {
    return a + b + c;
  }
  public static void main(String[] args) {
    SimpleTesting test = new SimpleTesting();
    int val1 = 10;
    int val2 = 20;
    int result1 = test.add(val1);
    int result2 = test.add(val1, 0, val2);
    System.out.println("resutl1 : " + result1);
    System.out.println("resutl2 : " + result2);
  }
}

出力:

resutl1 : 10
resutl2 : 30

Java でデフォルトパラメータを空の文字列として設定する

文字列パラメータの場合、パラメータに空の文字列を設定できます。ただし、この文字列はデフォルト値として null を保持します。以下の例を参照してください。

public class SimpleTesting {
  String defaulPara(int a, String str1, String str2) {
    return str1 + str2 + a;
  }
  public static void main(String[] args) {
    SimpleTesting test = new SimpleTesting();
    int val1 = 10;
    String result1 = test.defaulPara(val1, "", "second");
    String result2 = test.defaulPara(val1, "first", "");
    System.out.println("resutl1 : " + result1);
    System.out.println("resutl2 : " + result2);
  }
}

出力:

resutl1 : second10
resutl2 : first10

Java で任意の数の引数を持つ var-args を使用してデフォルトパラメータを設定する

var-args の場合、メソッドの呼び出し中に任意の数の引数を自由に指定できます。したがって、限られた引数のみを提供したい場合は、正常に機能します。以下の例を参照してください。

public class SimpleTesting {
  int defaulPara(int... a) {
    int sum = 0;
    for (int i : a) {
      sum += i;
    }
    return sum;
  }
  public static void main(String[] args) {
    SimpleTesting test = new SimpleTesting();
    int val1 = 10;
    int val2 = 20;
    int result1 = test.defaulPara();
    int result2 = test.defaulPara(val1);
    int result3 = test.defaulPara(val1, val2);
    System.out.println("resutl1 : " + result1);
    System.out.println("resutl2 : " + result2);
    System.out.println("resutl3 : " + result3);
  }
}

出力:

resutl1 : 0
resutl2 : 10
resutl3 : 30

関連記事 - Java Method