2013-11-09 5 views
0

는이 코드에서 자바 랭 널 포인터 예외를 얻을 :Java Lang Null 포인터 예외가 발생했습니다. 그러나 그 이유는 무엇입니까?

for (int i = 0; i<fragen.size(); i++) 
    { 
     for (int x = 0; x<dbfragen.size(); x++) 
     { 
      if(i == dbfragen.get(x).getFrageNR()) 
      { 
       if(fragen.get(i).getTyp() == 1) 
       { 

그것은 마지막에서 일어나는 문합니다. fragen.size() 30 이며 난에서 충돌 =이 나에게 아무 의미 1

:)

+0

정확한 줄을 알려줘야합니다. 'dbfragen'은 null이거나'dbfragen.get (x)'또는'fragen.get (i)'에 의해 반환 된 객체는 null이어야합니다. –

+0

fragen.get (i), fragen.get (i) .getTyp()를 if 조건 앞에 넣으십시오. 어떤 예외가 throw되는지 확인하십시오. –

+0

그것은 49 행에 있음을 알려줍니다 (이것은 fragen.get (i)입니다). 하지만 i가 0 일 때는 처음 작동하지만 1 일 때는 두 번째 시간이 아닙니다. –

답변

1

모음을 수행 할 수 있습니다

이 도와주세요 O 나는 로그 파일을 사용하여 그 안에 30 개의 널이있다. 첫 번째 요소가 null이 아닌 것으로 의심하지만 두 번째 요소 인덱스 : 1은 null입니다.

동의어 캐싱 조회를 제안합니다.

for (int i = 0; i<fragen.size(); i++) { 
    MyType fragenI = fragen.get(i); 
    if (fragenI == null) { 
     // do something 
     continue; 
    } 
+0

고맙습니다. 맞습니다. 29 개의 널 (null)이 있습니다. 이제 이유를 찾아야합니다 ... –

관련 문제