第一种情况,传非对象数组
public class Demo3 {
public static void main(String[] args) throws Exception {
int[] arr={1,2,3};
//把int[]传给Object...objects,会把int[]当成1个Object对象处理
//传入非对象的数组时,像基本类型的数组时,它会把整个数组当做一个Object 实例,打印出的结果为 1
get(arr); //输出1
}
public static void get(Object...objects){
System.out.println(objects.length);
}
}
第二种情况,传对象数组
public class Demo3 {
public static void main(String[] args) throws Exception {
Integer[] arr={1,2,3};
//把Integer[]传给Object...objects,Integer是Object的子类
//会把Integer[]的数据解析为可变参数objects的数据
//完成Integer[]到Object[]的传递
//如果传入的是一个对象数组,那么可变参数的长度就等于该对象数组的长度
get((Object)arr);//输出3
}
public static void get(Object...objects){
System.out.println(objects.length);
}
}