一、可变参数个数的形参
下图中这两个是不能同时存在的
public void sayHello(String ... args) { System.out.println(args.length); System.out.println("sayHello"); System.out.println("args"); } public void sayHello(String[] args) { System.out.println("sayHello"); System.out.println("args"); }
下图中几个是可以同时存在的,它们之间构成重载;最后一个是包含前三个的
public void sayHello() { System.out.println("sayHello"); } public void sayHello(String i) { System.out.println("sayHello"); System.out.println(i); } public void sayHello(String i,String j) { System.out.println("sayHello"); System.out.println(i); System.out.println(j); } public void sayHello(String ... args) { System.out.println(args.length); System.out.println("sayHello"); System.out.println("args"); }
可变形参个数和数组作为参数的不同(可变形参个数四种情况是都可以的,但是数组的话只支持第二种情况和第四种情况)
public void sayHello(String ... args) { System.out.println(args.length); System.out.println("sayHello"); System.out.println("args"); } // public void sayHello(String[] args) { // System.out.println("sayHello"); // System.out.println("args"); // } public static void main(String[] args) { Hello hello = new Hello(); //第一种情况 hello.sayHello(); //第二种情况 hello.sayHello(null); //第三种情况 hello.sayHello("1","2","3"); //第四种情况 hello.sayHello(new String[] {"1","2","3"}); }