提问人:Jwan 提问时间:5/12/2020 更新时间:5/12/2020 访问量:54
字符串数组中的 NullPointerException
NullPointerException In a String Array
问:
当我运行此方法以提供有关客户的所需数据时 - 这是一个飞行俱乐部程序 - 它不返回任何内容,就好像从未输入过任何内容一样。
NullPointerException 主要是问题所在,因为当我运行另一个方法(也将遵循)以提供一些数据时,才会出现 NullPointerException,但仅在没有输入数据时出现:
第一种方法提供有关用户的数据:
public static void ausgabeBuchung(String[] name, String[] surname, int[] time, int[] flightNumber, String[] description, String[] reservation) {
System.out.println("Alle ihrer Buchungen");
for (int i = 0; i < name.length-1; i++) {
System.out.println("the flight number: " + flightNumber[i]);
System.out.println("the description: " + description[i]);
System.out.println("time of the reservation: " + time[i]);
System.out.println("name of the person: " + name[i]);
System.out.println("Surname of the person: " + surname[i]);
System.out.println("Reservation type: " + reservation[i] + "\n");
}
}
第二种检查是否有航班可用的方法:
public static void verfügbar( String[] name, String[] description, int[] time, String[] reservation) {
for (int i = 0; i < description.length; i++) {
if (vorname[i] == " ") {
System.out.println("The flight with the description: " + description[i] + " is free the whole day");
} else if (buchung[i].equals("Ganze Tag")) {
System.out.println("The flight with the description: " + description[i] + " is reserved the whole day");
}
else{
System.out.println("The Flight with the description " + description[i] + " ist from: " + time[i]++ + " till: " + time[i] + " reserved");
}
}
}
答:
-1赞
atomos203
5/12/2020
#1
i < name.length-1
是你的问题,因为你的循环总是会省略姓氏。
0赞
zlb323
5/12/2020
#2
看起来您正在使用一组数组的索引作为某种 suedo-Object。在第一种方法中可能遇到的问题是 name 数组中的值数与其他数组不同。如果这些数组的每个索引都彼此相关,那么为什么不创建一个 Reservation 对象呢?
Public class Reservation {
String Name;
String surname;
int time;
int flightNumber;
String description;
String reservation;
}
然后只创建一个 Reservations 数组。
这将使迭代变得更加容易,而不必担心保持数组大小相同。
0赞
0xh3xa
5/12/2020
#3
在使用之前检查这些数组中是否有任何一个不是 null,可能是在调用该方法发送一些 null 数组时
您应该检查是否有任何参数为 null
public static void ausgabeBuchung(String[] name, String[] surname, int[] time, int[] flightNumber, String[] description, String[] reservation) {
if ( name == null || surename == null || time == null || flightNumber == null || description == null || reservation == null ) {
throw new IllegalArgumentException("Please enter valid arrays");
}
}
评论
if (vorname[i].equals(" "))