可变参数
可变参数
今天学习反射时遇到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;