아래 printf 줄의 test.main (test.java :)에서 thread "main"java.lang.NullPointerException에서 Java 예외가 발생합니다.배열에 데이터를 읽는 동안 Null 예외가 발생했습니다.
stdin에 값을 입력하고 있습니다. 예를 들어 1 2 버스를 입력 한 다음 캐리지 리턴을 입력하고 다른 행을 입력하면 Windows에서 Ctrl-Z를 사용하여 끝납니다.
인쇄 문을 넣었으므로 데이터 읽기가 정상적으로 처리 된 것처럼 보입니다. 여기서 Null 예외가 발생하는 이유는 무엇입니까? 여기
코드입니다 : 코드에서import java.util.Scanner;
public class test {
public static class Data
{
public Data() {}
public Data(int v1, int v2, String s1) { n1 = v1; n2 = v2; s = s1; }
public int n1;
public int n2;
public String s;
};
public static void main(String[] args) {
int i = 0;
int v1, v2;
v1 = v2 = 0;
String s;
Data items[] = new Data[100];
Scanner input = new Scanner(System.in);
while(input.hasNext()) {
switch(i % 3) {
case 0: v1 = input.nextInt(); break;
case 1: v2 = input.nextInt(); break;
case 2:
s = input.next();
items[i] = new Data(v1, v2, s);
break;
}
++i;
}
input.close();
for(int j = 0; j < i; ++j) {
//on next line get Exception in thread "main" java.lang.NullPointerException at test.main(test.java:)
System.out.printf( "%s\t%d\t%d\n", items[j].s, items[j].n1, items[j].n2);
}
}
}
해당 라인에 제어점을 작성하고 디버거를 가동 한 다음 변수 내용을 살펴보십시오. 그 중 하나가 null 일 가능성이 큽니다. – SirRichie