我有这个代码,
class Test
{
public static void main(String args[])
{
ArrayList<Integer> al=new ArrayList<>();
al.add(1);
al.add(2);
al.add(3);
Integer a[]=new Integer[2];
al.toArray(a);
for(int i:a)
System.out.println(i);
/*for(int i=0;i<a.length;i++)
System.out.println(a[i]);*/
}
}
上面的代码抛出 NullPointerException 但如果我尝试关闭注释部分,并为循环增强注释,它将打印 null 2 次。打印 a.length 打印 2。将整数数组大小设置为 3 将打印 123。
如果我错了,现在纠正我:
1> 我对 toArray(T[] a) 方法的理解是,如果数组的大小小于列表中的元素,则将创建具有数组指定大小的新数组,并且其中的元素将为空,考虑到这一点. 我的数组应该看起来像这样 a[]={null,null};
2> 增强型for循环与传统for循环的区别在于增强型for循环中不能修改或删除单个元素。
但是,为什么这个程序会有所不同呢?我只是打印它们,为什么增强for循环不打印null并抛出NullPointerException?