gpt4 book ai didi

java - 线程 "main"java.lang.NullPointerException 中的异常 - JAVA 记录数组

转载 作者:行者123 更新时间:2023-12-01 10:02:16 26 4
gpt4 key购买 nike

我正在学习记录数组并通过问题进行练习。但是我收到了这个错误响应

Exception in thread "main" java.lang.NullPointerException

这是我的代码

import java.util.Scanner;

public class Employees {

public static Scanner sc = new Scanner(System.in);
int n;
int id, salary;
String name, group;

Employees[] employees = new Employees[100];

void initializing_array(){
System.out.print("Number of Data: ");
n = sc.nextInt();

if( n >= 0 && n <= 100){
for(int i=0; i <= n; i++){
System.out.print("ID: ");
employees[i].id = sc.nextInt();
System.out.print("Name: ");
employees[i].name = sc.nextLine();
System.out.print("Group: ");
employees[i].group = sc.nextLine();
System.out.print("Salary: ");
employees[i].salary = sc.nextInt();


}
}else{
System.out.println("==========");
}
}

void output_array(){
for(int i=0; i < n; i++){
System.out.println("ID: "+employees[i].id);
System.out.println("Name: "+employees[i].name);
System.out.println("Group: "+employees[i].group);
System.out.println("Salary: "+employees[i].salary);

}
}

public static void main(String[] args) {
Employees emp = new Employees();

emp.initializing_array();
emp.output_array();
}

}

当我输入一些数据时,错误出现在initializing_array()循环中。提前致谢。

最佳答案

每个 NullPointerException 都是重复的。这意味着您没有初始化对象。

这段代码有两个问题。

  1. if( n >= 0 && n <= 100){是错误的,因为 n 为 100 将抛出 IndexOutOfBoundsException。

  2. 尽管 Employees[]数组已分配,但从未创建 Employee 对象。 (循环计数器也是错误的)。

(注意:不确定为什么代码格式不起作用)

for (int i = 0; i < n; ++i) {  
employees[i] = new Employee(); //<-- ADD THIS LINE
System.out.print("ID: ");
employees[i].id = sc.nextInt();
System.out.print("Name: ");
...
}

关于java - 线程 "main"java.lang.NullPointerException 中的异常 - JAVA 记录数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36706425/

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