2010-04-21 103 views
0

我有這樣的代碼:爲什麼我得到一個空指針異常?

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

Eclipse中寫道,我在最後一行一個NullPointerException。這可能是什麼原因。我確實在ManagerMyWindowListener有構造函數。

如果重要MyWindowListener implements WindowListener

+10

什麼是堆棧跟蹤?也許這個異常發生在'addWindowListener'內部。 – Blorgbeard 2010-04-21 13:06:52

+0

eclipse是否說,或者java運行庫告訴你這個?如果它只是日食,別擔心,它可能是一個警告。 – Arcturus 2010-04-21 13:20:08

回答

4

您得到一個NullPointerException,因爲您想訪問/調用的對象引用(使用句點運算符.)爲null。在你的情況下,它是空的manager。但是,如果這被證實是錯誤的,並且stacktrace的第一行因此沒有提供任何線索,那麼你可能沒有看到實際運行的代碼的相同版本。

+1

關於相同版本的代碼的好評! – Arcturus 2010-04-21 13:19:26

3

這段代碼不能產生NullPointerException。因此,它扔在3的一個地方

1)管理器構造

2)MyWindowListener構造

3)addWindowListener方法(如果你重寫它)

我們展示的代碼這些地方有待進一步調查。

0

我的錢是在打算將監聽器存儲在Manager中的容器中,但您尚未在Manager構造函數中創建容器的想法。