//: initialization/OverloadingVarargs2.java
// {CompileTimeError} (Won't compile)public class OverloadingVarargs2 {
  static void f(float i, Character... args) {
    System.out.println("first");
  }
  static void f(Character... args) {
    System.out.print("second");
  }
  public static void main(String[] args) {
    f(1, 'a');
    f('a', 'b');
  }
} ///:~以上代码是thinking in java4中的,讲的是variable argument的initialization
两个f method在执行f('a','b')时,会ambiguious
不知道为什么会产生冲突

解决方案 »

  1.   

    class   OverloadingVarargs2   {     static   void   f(float   i,Character args)   { 
            System.out.println( "first"); 
        } 
        
        static   void   f(Character args)   {
            System.out.print( "second"); 
        } 
        
        public   static   void   main(String[]   args)   {
        
    f(1,'a');
    f('a','b');
        } 
    }
     程序正确的!!!
      

  2.   

    no.....在f('a','b')会有compile error