JAVA的新特性

一、可变参数个数的形参

下图中这两个是不能同时存在的

    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"});
    }

  

原文地址:https://www.cnblogs.com/erdanyang/p/12094694.html