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

标签 java arrays foreach

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();;         
        }

    }


}

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

最佳答案

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

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

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

关于Java For each 循环对象分配不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27622097/

相关文章:

java - "this"在 Java 中可以为空吗?

Java从属性文件yaml中存储和读取字节数组

arrays - Flutter 解析来自本地化 JSON 文件的数组

java - 以相反顺序打印数组,printf 对齐问题

java - foreach循环会导致线程并发吗?

java - Hibernate saveOrUpdate 创建一个对象的两个实例

java - 如何创建正确的返回类型?

Java:如何提取注解成员

php - Laravel foreach 中的独特/不同

excel - 如何加速 VBA 中的 For Each 循环?