2014-04-26 7 views
-1

나는이 방법으로 클래스를 가지고 :널 포인터

private List<Location> locations = new ArrayList(); 
난 항상이 줄에 널 포인터 예외가

:

내가 그것을를 언급하면, 내가 [빈을 ] 내 브라우저에서. 문제는 거기에 내가 생각합니다.

일부 디버깅 후, 나는 Object s을 알아 냈습니다. 그러나 나는 이유를 이해하지 않는다. 디버거는, 그 선 후 계속되지 않습니다 : 아래 참조 ...

enter image description here

+0

은 null이 아닌 s 개체입니까? –

+0

@Angelo'query.getResultList()'에리스트를 반환하고 리턴 타입을리스트 오브 젝 트 스테이션으로 변경하면 전체 작업 결과를 얻을 수 있습니다. 쿼리가 작동 함을 의미합니다. 그러나 for 루프에서는 일이 급하게됩니다. –

+0

스택 추적을 게시 할 수 있습니까? –

답변

0

가장 쉬운 방법은 약 15 분에이를 찾기 위해 디버거를 통해 단계입니다. 아무 때 나 null을 정확히 볼 수 있습니다.

해당 참조가 null 인 경우 문제가 발생합니다.

원인은 없지만 왜이 작업을 수행합니까?

private List<Location> locations = new ArrayList(); 

아니겠습니까?

private List<Location> locations = new ArrayList<Location>(); 
+0

로컬 '위치'가 보이지 않습니까? –

+0

내 실수. 다시 읽은 후 개정 됨. – duffymo

+0

@duffymo 디버깅 정보가 추가 된 것을 볼 수 있습니까? –

0

하나의 ','위치 'null의 경우, 또는 역의 코드를 보지 않고, 또한 예를 들어 Station.getAddressGMapsLatitude는() 원시 대신 초기화되지 않은 두 객체를 반환하는 경우 그 자동 언 박싱이 실패 할 수있다 더블. 하지만 디버거를 확인하거나 로그를 추가하는 것이 좋습니다.

+0

s가 null이라는 것을 알았습니다. 업데이트 된 질문을 참조하십시오. 그러나 왜 fugure 수 없습니다. –

+0

디버깅은 실습에 필요한 기술입니다. 여기에 묻는 것은 그것을하는 방법이 아닙니다. 알아낼 수 없다면 프로그래밍을 포기하십시오. – duffymo