私は可変引数の内外を理解しようとしていて、次のコードを書きました
public class VarArgTest {
/**
* @param args
*/
public static void main(String[] args) {
VarArgTest v = new VarArgTest();
//Code 1
System.out.println("haha");
}
public void m1(Integer a, Integer... ints) {
System.out.println("1");
}
public void m1(Integer... ints) {
System.out.println("2");
}
}
コード 1 を
v.m1(new Integer(1), new Integer(2));
次のメッセージが表示されます
The method m1(Integer, Integer[]) is ambiguous for the type VarArgTest
私の質問は、なぜクライアント コードでエラーをスローするのですか? 2 つの m1 メソッドを定義しているときに、コンパイラによってキャッチされるべきではありませんか?