次のように 2 つの varargs メソッドだけを宣言するとします。
public void foo(String... strings) {
System.out.println("Foo with Strings");
}
と
public void foo(int... ints) {
System.out.println("Foo with ints");
}
そしてコードを持っています:
foo();
これは、予想どおりのあいまいさによるコンパイラ エラーです。
ただし、次の 2 つのバージョンの foo しかない場合:
public void foo(Object... objects) {
System.out.println("Foo with Objects");
}
と
public void foo(int... ints) {
System.out.println("Foo with ints");
}
次にコード
foo();
メソッドの ints バージョンを呼び出します。2 番目の例が同様に曖昧ではない理由と、Object メソッドではなく int メソッドに解決される理由を誰でも説明できますか。ありがとう。