Java のデフォルトパラメータ
- Java のデフォルトパラメータ
- Java で var-args を使用してデフォルトパラメータを設定する
- Java でデフォルトパラメータを空の文字列として設定する
- Java で任意の数の引数を持つ var-args を使用してデフォルトパラメータを設定する
このチュートリアルでは、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