2010-04-21 6 views
0

는이 코드를 가지고 :Null 포인터 예외가 발생하는 이유는 무엇입니까?

Manager manager = new Manager("Name"); 
MyWindowListener windowListener = new MyWindowListener(); 
manager.addWindowListener(windowListener); 

이클립스 내가 마지막 줄에 NullPointerException이 있다고 기록합니다. 그 이유가 무엇일 수 있습니다. 나는 ManagerMyWindowListener에 생성자를 가지고있다.

중요한 경우 MyWindowListener implements WindowListener.

+10

스택 추적이란 무엇입니까? 어쩌면 예외가'addWindowListener' 내부에서 발생할 수 있습니다. – Blorgbeard

+0

이클립스 말, 또는 자바 런타임 말해주지 않니? 그것의 다만 식, 걱정하지 말라, 그것 경고일지도 모르면. – Arcturus

답변

4

액세스/호출하려는 개체 참조 (기간 연산자 . 사용)가 null이므로 NullPointerException이 표시됩니다. 귀하의 경우 그것은 manager입니다 null입니다. 그러나 이것이 틀린 것으로 확인되고 stacktrace의 첫 번째 줄에 아무런 단서도 없으면 실제로 실행중인 코드의 동일한 버전을보고 있지 않을 것입니다.

+1

부호의 동일한 버전에 관하여 중대한 코멘트! – Arcturus

3

이 코드는 NullPointerException을 생성 할 수 없습니다. 그래서, 그것은 하나의 3의 장소

에 던져 것

1) 관리자 생성자

2) MyWindowListener 생성자

3) addWindowListener에 방법 (당신이)를 오버라이드 (override) 한 경우

는 우리의 코드를보기 추가 조사를위한 장소.

0

돈은 Manager 내부의 컨테이너에 리스너를 저장하려고하지만 Manager 생성자에서 컨테이너를 만들지 않은 것입니다.

관련 문제