gpt4 book ai didi

java - 遇到java.lang.NullPointerException

转载 作者:行者123 更新时间:2023-12-01 13:58:37 24 4
gpt4 key购买 nike

我遇到了两个与 NullPointerExceptions 相关的错误,我想它们是相关的,因此我将发布当我尝试从 salaryEmployee 对象添加员工时收到的错误。

这是我收到的错误:

Exception in thread "main" java.lang.NullPointerException
at EmployeeList.getIndex(EmployeeList.java:40)
at EmployeeDriver.main(EmployeeDriver.java:99)

EmployeeList.java

public class EmployeeList
{

private final int EMPLOYEES_MAX = 50;
private Employee[] employees = new Employee[EMPLOYEES_MAX];
private int currentEmployees;

public EmployeeList()
{
employees = new Employee[EMPLOYEES_MAX];
currentEmployees = 0;
}

public int getIndex( int empNum )
{
int index = -1;
for(int i = 0; i < currentEmployees; i++)
{
if(employees[i].getEmployeeNumber() == empNum) *error here (line 40)*
{
index = i;
i = 51;
}
else
{
index = -1;
}
}
return index;
}


public void listAll()
{
for(int i = 0; i < currentEmployees; i++)
{
System.out.println(employees[i]);
}
}

EmployeeDriver.java

do {
// Display all current employees in the list
empMgr.listAll();

//Run the main menu to display options, read, validate and return the user's choice
System.out.println("Main Menu");
mainInput = mainMenu.runMenu();

//Perform the Main Menu action requested by the user
switch(mainInput) {
//Add Employee main menu option
case 1:
// declare temporary variables for user input of employee values
String fName, lname;
char mid, gender, f;
boolean ft = true;
double amount;

// get the employee type
do {
System.out.println("\n1. Hourly");
System.out.println("2. Salary");
System.out.println("3. Commission");
System.out.print ("Enter Choice: ");
empType = in.nextInt();
if (empType < 1 || empType > 3) {
System.out.println ("Invalid Choice. Try Again!");
}
}while (empType < 1 || empType > 3);

System.out.print("Enter Last Name: ");
lname = in.next();
System.out.print("Enter First Name: ");
fName = in.next();
System.out.print("Enter Middle Initial: ");
mid = in.next().charAt(0);
System.out.print("Enter Gender: ");
gender = in.next().charAt(0);

// ask for employee number
// search employee list for existing employee with that number
// if number already exists, display an error message
int en_index = -1;
do {
System.out.print("Enter Employee Number: ");
empNum = in.nextInt();
// if empNum in range then check employee list to determine if
// employee number already exists
if (empNum >= 1 && empNum <= 99999) {
error en_index = empMgr.getIndex(empNum); *error here ( line 99 )*
if (en_index != -1)
System.out.println ("Employee number already used - Choose a new number");
}
else
System.out.println ("Employee number must be between 1 and 99999 inclusive");

}while (en_index != -1 || (empNum < 1 || empNum > 99999));

// determine if employee is a full time employee
System.out.print("Full Time? (y/n): ");
f = in.next().charAt(0);
if(f == 'n' || f == 'N') {
ft = false;
}

程序运行

java EmployeeDriver
Main Menu

Choose from the following options:
1 Add Employee
2 Process Employees by Type Submenu
3 Remove Employee
4 Sort Employees
5 Calculate Weekly Payout
6 Calculate Bonus
7 Annual Raises
8 Reset Week
0 Quit
Option: 1

1. Hourly
2. Salary
3. Commission
Enter Choice: 1
Enter Last Name: Johnson
Enter First Name: John
Enter Middle Initial: J
Enter Gender: M
Enter Employee Number: 100
Full Time? (y/n): y
Enter wage: 9.00
Employee Added to List
null
Main Menu

Choose from the following options:
1 Add Employee
2 Process Employees by Type Submenu
3 Remove Employee
4 Sort Employees
5 Calculate Weekly Payout
6 Calculate Bonus
7 Annual Raises
8 Reset Week
0 Quit
Option: 1

1. Hourly
2. Salary
3. Commission
Enter Choice: 2
Enter Last Name: Jone
Enter First Name: Johan
Enter Middle Initial: L
Enter Gender: M
Enter Employee Number: 101
Exception in thread "main" java.lang.NullPointerException
at EmployeeList.getIndex(EmployeeList.java:40)
at EmployeeDriver.main(EmployeeDriver.java:99)

最佳答案

这实际上意味着 employees 数组中的一个或多个条目为 null。我不知道为什么,因为问题中没有足够的信息。但如果您可以发布所有代码,我可以找出并告诉您出了什么问题。

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

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