gpt4 book ai didi

java - 搜索Java中的空指针异常

转载 作者:行者123 更新时间:2023-11-29 05:52:20 25 4
gpt4 key购买 nike

<分区>

//TestEmployeesProgram driver with menu & object array.
import java.util.*;
public class TestEmployeesProgram {

public static Scanner console = new Scanner(System.in);

public static void main(String[] args)
{
final int MAX = 7;

Employee employee[] = new Employee[MAX];

int choice,k;
String name;
boolean notFound;

employee[1] = new Manager("Joe Bloggs","gdr",4,32.5);
employee[2] = new Admin("Mary Jennings","nnv",35.3,88.5,34.3);
employee[3] = new Clerk("Brian Jones","bbl",42.4,78.5,23.5,45.3);
employee[4] = new Manager("John Bloggs","gvr",5,33.5);
employee[5] = new Admin("Bridget Jennings","nvv",45.3,98.5,36.3);
employee[6] = new Clerk("Jack Jones","bbb",43.4,78.5,23.5,47.3);


//Initial Read
choice = showMenu();

//Continue Until 4/Exit
while (choice != MAX)
{
switch (choice)
{
case 1://Manager

System.out.println();
System.out.printf("%s %-16s %-10s %6s","Name","Id","Hours Worked","Pay");
System.out.println("\n==================================================");

for (k = 0; k < MAX; ++k)
{
if (employee[k] instanceof Manager){ //use of string method instance of.


System.out.println(employee[k].toString());
}
}
break;

case 2://Administration

System.out.println();
System.out.printf("%s %-16s %-10s %6s %-19s","Name","Id","Hours Worked","Pay","Admin Quota");
System.out.println("\n==================================================");

for (k = 0; k < MAX; ++k)
{
if (employee[k] instanceof Admin){
System.out.println(employee[k].toString());

}
}
break;

case 3://Clerk

System.out.println();
System.out.printf("%s %-16s %-10s %6s %-19s","Name","Id","Hours Worked","Pay","Admin Quota","Units Sold");
System.out.println("\n==================================================");

for (k = 0; k < MAX; ++k)
{
if (employee[k] instanceof Clerk){
System.out.println(employee[k].toString());
}
}
break;

switch 语句中的这种情况给了我 NullPointerException。我已经检查了所有内容以查看它是否正确初始化,但似乎无法找到问题所在。此外,如果找不到名称,搜索功能会绕过名称搜索以获取默认消息。一些指导将不胜感激。

        case 4://Name search

System.out.print("Enter employee name: ");
name = console.nextLine();

k = -1;
notFound = true;



while ((k < MAX-1) && (notFound))
{
++k;
if (name == employee[k].getName()){

System.out.println();
System.out.printf("%s %-16s %-10s %6s %-19s","Name","Id","Hours Worked","Pay","Admin Quota","Units Sold");
System.out.println("\n==================================================");

System.out.println(employee[k].toString());
System.out.println();
notFound = false;
}


}//end of case 4 while.
if (notFound){
System.out.println("Employee name not found\n");
}
break;

case 7://exit
System.out.println("Program exiting...");
System.exit(0);

default:
System.out.println("Invalid menu choice 1..3 of 7 to Exit");
}//end of switch

//sub read
choice = showMenu();

}//end of while
}//end of main

//Menu method for employee selection.
public static int showMenu()
{

int choice;
System.out.println();

System.out.println("Employee Program Menu");

System.out.println("1.Show Manager pay details ");
System.out.println("2.Show Admin pay details ");
System.out.println("3.Show Clerk pay details ");
System.out.println("4.Search by employee name ");
System.out.println("7.Exit");

System.out.print("Enter option: ");
choice = console.nextInt();

return choice;
}
}

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