Java定义方法可变参数

众所周知, Java可以通过... 来给一个方法定义一个可变长度的参数.
例如

// 返回可变参数的个数
public void method(int ... i){
      System.out.println(i.length);
}

其中注意点一共有两个

  1. 只能设定一个可变参数, 并且这个参数必须在最后
//Vararg parameter must be the last in the list
public void method(int... i, String str){
        System.out.println(i.length);
}
//Vararg parameter must be the last in the list
public void method(int... i, String... str){
        System.out.println(i.length);
}

以上两种都是错误的使用方式

  1. 调用的时候, 可以省略这个可变参数. 也就是说, 可以设定最后一个参数的个数为0.
public void test(String str, int... i){
        System.out.println(str);
}

public static void main(String[] args) {
        System.out.println();
        //no error
        new Sample().test("hello");
}

顺便说一下, 一个对象即使调用了这个方法, 在调用时个数也是模糊的.

public void test(String str, int... i){
    System.out.println(str);
}

public static void main(String[] args) {
    System.out.println();
    Sample sample = new Sample();
    sample.test("as",new int[]{1,2});
    sample.test("as",new int[]{1,2,3});

}
posted @ 2020-05-14 16:02  Archer_Shu  阅读(921)  评论(0编辑  收藏  举报