int[] ints = {1,2,3,4};
if(Arrays.asList(ints).contains(3)){
System.out.println("true");
}else{
System.out.println("false");
}
输出false
从我理解角度讲讲这种现象
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
1、基本数据类型是无法泛型化的,也就是说 8 个基本类型是无法作为 asList 的参数的,为啥没报错呢,因为数组是对象。当成对象了。输出ints可见 [I@1ebdff3b
int[] ints = {1,2,3,4};
if(Arrays.asList(ints).contains(ints)){
System.out.println("true");
}else{
System.out.println("false");
}
输出true
2、修改int[] 成 Integer[] ,再次contains(3),true。
asList 方法。Java将可变长参数当成数组对待。可以将一个数组或可变的参数个数传递给可变长参数。当用可变的参数个数调用方法时,Java会创建一个数组并把参数传给它。
a本质就是一个数组,所以当对象类型数组直接可以传给它