可变参数

可变参数

今天学习反射时遇到Construct的参数为可变参数

原函数

@CallerSensitive
public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes)
   throws NoSuchMethodException, SecurityException {
   checkMemberAccess(Member.DECLARED, Reflection.getCallerClass(), true);
   return getConstructor0(parameterTypes, Member.DECLARED);
}

举例说明

public static void a(int...x){
}

如果我们要调用这个方法 a(); ,我们可以在a的参数里写int类型的任意个x,也可以不传。
例如 a(2,5,5,5,12);
实际上这个x是个数组,在方法a 中我们可以输出x的长度

public static void a(int[] x){
       System.out.println(x.length);
}

可以看成语法糖,...相当于在底层创建数组,省去new数组
可变参数必须在最后

举例说明

public static void a(int y,int...x){
}

那么调用时a(1,2,5,3,5);第一个数字1是y,后面的都是x;

posted @ 2019-08-14 18:06  此间的我  阅读(167)  评论(0编辑  收藏  举报