gpt4 book ai didi

java - 调试 NullPointerException

转载 作者:行者123 更新时间:2023-12-01 13:00:03 25 4
gpt4 key购买 nike

由于我无法弄清楚的原因,我在此类中收到 NullPointException 错误。这个类应该成功创建一个雇主列表,一个要存储在其中的雇员列表,然后显示所有雇主及其雇员。目前,下面的 for 循环似乎在某种程度上增加了 NullPointException 错误。

这是我的 TEST 类的完整代码,上面的行进一步向下。

import java.util.*;

public class TestEmployer {

public static void main(String agrs[]) {

Scanner get = new Scanner(System.in);
int i, j, esize = 0;

System.out.println("Number of employers: ");
int size = get.nextInt();

while (size < 5) {
System.out.println("Size must be at least 5: ");
size = get.nextInt();
}

Employer list[] = new Employer[size];
for (i = 0; i < size; i++) {
System.out.println("How many employees? ");
esize = get.nextInt();

while (esize < 10) {
System.out.println("Must be at least size 10: ");
esize = get.nextInt();
}

Employee elist[] = new Employee[esize];
for (j = 0; j < esize; j++) {
elist[i] = randomEmployee();
}
list[i] = new Employer(randomEmployer(), elist, "507", 1000.00);
}

for (i = 0; i < size; i++) {
System.out.printf("%s: ", list[i].getName());
for (j = 0; j < esize; j++) {
System.out.printf("\n%s", list[i].getEmployees()[j].toString());
}
}
}
}

关于这个空指针异常错误来自哪里的任何线索吗?

对于没有显示原始错误消息,我深表歉意。这是:

Lucas 07/03/1973 06/06/1965:(salaried) 19929.33Exception in thread "main" java.lang.NullPointerException    at TestEmployer.main(TestEmployer.java:53)

正如您在上面所看到的,它打印了第一个员工及其信息,然后就消失了。

*编辑2:我对之前的代码表示歉意,这是更新后的代码(没有令人困惑的变量名称)

最佳答案

您的问题源于您的 esize int 变量保存了第一个列表中存储的最后一个数组的长度(您继续用每个数组的长度覆盖相同的变量),因此您可以轻松地循环和显示时超出数组范围。

for(j=0; j < esize; j++){

应该是

for(j=0; j < list[i].getEmployees().length; j++){

关于java - 调试 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23577109/

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