비행 예약 시스템 인 프로그램을 작성해야합니다. 프로그램을 정상적으로 실행하고 메시지가 표시 될 때 값을 입력하면 아무 일도 일어나지 않지만 .txt 파일 입력을 사용하면 NullPointerException
이 표시됩니다. 정상 입력을 수행 할 때 NullPointerException
점점 코드 메신저의 일부가사용자 입력이 아닌 텍스트 입력을 사용할 때 NullPointerException이 발생하는 이유는 무엇입니까?
public void instantiateAirplane() throws IOException{
boolean creatingAirplane = true;
String className= "";
String seatFormat;
int rowNums;
while (creatingAirplane){
input = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter service class name or [ENTER] to finish: ");
className = input.readLine();
if (className.equals("")) {
creatingAirplane = false;
}
else{
System.out.println("Enter seating pattern: ");
seatFormat = input.readLine();
System.out.println("Enter number of rows: ");
rowNums = Integer.parseInt(input.readLine());
plane.creatSeatingChart(className, rowNums, seatFormat);
}
}
}
, 그것은 다음과 같이 실행합니다 .txt 인 입력을 사용하는 경우 때
C:\Users\Owner\Desktop\Math&CIS\CS151\HW1>java UserInterface planes
Enter service class name or [ENTER] to finish:
First Class
Enter seating pattern:
WAAW
Enter number of rows:
2
Enter service class name or [ENTER] to finish:
Business Class
Enter seating pattern:
WAAW
Enter number of rows:
2
Enter service class name or [ENTER] to finish:
Add [P]assenger, Add [G]roup, [C]ancel Reservations, Print [S]eating chart, Prin
t [M]anifest, [Q]uit
하지만, 다음은
C:\Users\Owner\Desktop\Math&CIS\CS151\HW1>java UserInterface planes < input.txt
Enter service class name or [ENTER] to finish:
Enter seating pattern:
Enter number of rows:
Enter service class name or [ENTER] to finish:
Exception in thread "main" java.lang.NullPointerException
at UserInterface.instantiateAirplane(UserInterface.java:21)
at UserInterface.main(UserInterface.java:123)
C:\Users\Owner\Desktop\Math&CIS\CS151\HW1>
를 발생
"if (className.equals("")) {
"
t에서 예외가 발생합니다. 그는 입력 텍스트는 follwing을은 다음과 같습니다
First
WAAW
2
Economy
WCAACW
3
...
I는 입력 텍스트를 사용할 때 작동하지 않는 이유를 모르겠어요.
'UserInterface.java'에서'if (className.equals ("")) {'this'line 21' 코드를 확인할 수 있습니까? –