ソフトウェアエンジニアの日常の雑記

日々思ったことをまとめます

Javaの可変長引数メソッド

Javaの可変長引数でこういうときどうなるんだ?ってふと思ったので、実行結果をメモ。

public class SampleVariable {
    public static void main(String[] args) {
        SampleVariable a = new SampleVariable();
        a.show();
        a.show(1);
        a.show(1, 2);
        a.show(1,2,3);
    }
    
    public void show(int a) { // 引数1つ
        System.out.println("a");
    }

    public void show(int a,int b) { // 引数2つ
        System.out.println("ab");
    }
    
    public void show(int... a) { // 可変長引数
        System.out.println("a...");
    }
}

実行結果は下記

a...
a
ab
a...

可変長引数メソッドを定義して、引数なしのメソッドを定義しなかったときに、引数なしメソッドを呼び出した場合には、可変長引数メソッドが呼ばれている。可変長引数メソッドは引数0個も含まれている。