Varargsを使用していくつかのことを試していました:
1つの問題に遭遇しました:
class A {
public void func(int... a) {
System.out.println("int... a");
}
public void func(double... b) {
System.out.println("double... b");
}
}
public class B {
public static void main(String... args) {
A a = new A();
a.func(); //Getting no compilation error;instead func(int... a) is
//being called
}
}
ここで、クラス A が次のように変更されたかのように:
class A {
public void func(int... a) {
System.out.println("int... a");
}
public void func(boolean... b) {
System.out.println("boolean... b");
}
}
今、私はコンパイル時エラーを取得します。int と double を使用したときに、これが以前に発生しなかった理由を知りたかっただけです。しかし今、これは int と boolean だけで起こっています。あいまいさは理解していますが、これは最初のケースでも発生するはずです。私はJava 7を使用しています。ブール値の場合にのみ発生します。解決策を提供するのを手伝っていただけませんか?
ありがとう。