数组赋给可变参数:
如果类型相同,把数组拆开
new int[ ] { 1,2,3} 赋给 int ... 拆成 1 2 3
package com.itheima.xiaozhi;
public class VariableParameter {
//可以把可变参数看成是一个数组
public static void main(String[] args) {
System.out.println(add(1,2,3,4));
System.out.println(add(1, new int[] {2,3,4}));
}
public static int add(int a, int...args) {//int[] args
for (int i = 0; i < args.length; i++) {
a+=args[i];
}
return a;
}
}
如果类型不匹配:new int [ ] { 1 ,2 ,3} 赋给 Object...
new int [ ] { 1 ,2 ,3} 看成一个对象来处理
package com.itheima.xiaozhi;
import java.util.Arrays;
import java.util.List;
public class VariableParam {
public static void main(String[] args) {
// public static <T> List<T> asList(T... a)(Object[]os)
List list = Arrays.asList("1", "2", "3");
System.out.println(list);// [1, 2, 3]
String arr[] = { "1", "2", "3", "4" };
list = Arrays.asList(arr);
System.out.println(list);// [1, 2, 3, 4]
Integer nums2[] = { 1, 2, 3, 4, 5 };
list = Arrays.asList(nums2);
System.out.println(list);// [1, 2, 3, 4, 5]
int nums[] = { 1, 2, 3, 4, 5 };
list = Arrays.asList(nums);
System.out.println(list.size());//1
System.out.println(list);// [[I@120d62b]
}
}
数组也是Object的实例
package jingtianxiaozhi;
public class Test {
public static void main(String[] args) {
int[] a=new int[]{1,2,3};
System.out.println(a.getClass().getName());
System.out.println( a instanceof Object);
Integer[] is={1,2,3};
System.out.println(is.getClass().getName());
System.out.println( is instanceof Object);
Object[]os={1,"2",'3' };
System.out.println(os.getClass().getName());
System.out.println(os instanceof Object);
}
}
运行结果
[I
true
[Ljava.lang.Integer;
true
[Ljava.lang.Object;
true