2

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を使用しています。ブール値の場合にのみ発生します。解決策を提供するのを手伝っていただけませんか?

ありがとう。

4

0 に答える 0