gpt4 book ai didi

java - 类对象数组并在 foreach 循环中访问

转载 作者:行者123 更新时间:2023-11-30 03:31:26 24 4
gpt4 key购买 nike

import java.util.Scanner;

class A{
int age;
public static void main(String[] args){
Scanner s=new Scanner(System.in);
A[] a=new A[4];
System.out.println("Enter the elements:");

for(A i:a){
i.age=s.nextInt();
}
}
}

在这段代码中,我希望用户提供输入,但它正在生成

 Exception in thread "main" java.lang.NullPointerException
at A.main(a.java:10)

请指导我解决此错误。

最佳答案

您已经初始化了数组,但也忘记了初始化它的元素。

A[] a=new A[4];

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

请注意,只需执行 new A[4]; 即可创建数组,但会创建各个 A 对象引用 (a[0], a[1] 等)仅初始化为 null

<小时/>

如果您无法想象为什么会这样,以下内容应该会有所帮助。

A[] a = null;

// NO array object
System.out.println(Arrays.toString(a));

a = new A[4];

// Array object with NO elements
System.out.println(Arrays.toString(a));

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

// Array object with A() elements
System.out.println(Arrays.toString(a));

输出:

null
[null, null, null, null]
[A@15db9742, A@6d06d69c, A@7852e922, A@4e25154f]

关于java - 类对象数组并在 foreach 循环中访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28912877/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com