Java For each循环对象分配不起作用

Java For each循环对象分配不起作用,java,arrays,foreach,Java,Arrays,Foreach,在A.main(A.java:28)的线程“main”java.lang.NullPointerException中获取异常 存储了aList地址空间A类对象,但再次迭代无法获取存储的对象,对象存储在哪里 a是for循环的局部变量,因此分配给它不会影响数组的元素 您应该使用常规for循环来初始化数组: public class A{ int val; public A(int val){ this.val = val; } public

在A.main(A.java:28)的线程“main”java.lang.NullPointerException中获取异常
存储了aList地址空间A类对象,但再次迭代无法获取存储的对象,对象存储在哪里

a
是for循环的局部变量,因此分配给它不会影响数组的元素

您应该使用常规for循环来初始化数组:

public class A{

    int val;    
    public A(int val){
        this.val = val;
    }

    public void print() {
        System.out.println(val);

    }


    public static void main(String args[]){

        A[] aList = new A[10];
        int temp =1;

        for(A a : aList){
            a = new A(temp++);          
        }

        for(A a : aList){
            a.print();;         
        }

    }


}
for(int i=0;i
增强的for不是这样工作的。请改用循环标准:

    for(int i = 0; i < aList.length; i++){
        aList[i] = new A(temp++);          
    }
for(int i=0;i
增强型for使用迭代器循环遍历数组的每个元素。由于数组只包含空值,因此得到的是NullPointerException

for(int i = 0; i < aList.length; i++){
   aList[i] = new A(temp++);          
}