2013-03-21 137 views
-2

我正在寫一些代碼和我不斷收到這個錯誤,它與在那裏我打電話network.addstation顯示java.lang.NullPointerException在NetBeans

這裏的代碼,也有在網絡中的其他方法做方法,但我想我只是顯示一個,但它會出現在你調用任何方法時。任何幫助都會受到很大的幫助。謝謝。

public class MyNetworkReader implements NetworkReader { 

    Network network = null; 

    @Override 
    public Network read(InputStream stream) { 
     Scanner scan = null; 
     scan = new Scanner(stream); 
     while (scan.hasNext()) { 
      String fromStation = scan.next(); 
      if (!fromStation.equalsIgnoreCase("connection:")) ; 
      network.addStation(fromStation) 
      System.out.println(fromStation); 
     } 
    } 

    return network; 
} 

import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.HashSet; 

public class MyNetwork implements Network { 


    HashMap<String, ArrayList> stations = new HashMap<String, ArrayList>(); 


    public void addStation(String station) { 
     stations.put(station, null); 
    } 
} 

回答

1

您是在任何地方構建MyNetwork實例嗎?

好像你要

Network network = null; 

MyNetwork network = new MyNetwork(); 

因爲你想調用一個門外漢對象的方法。但是你的MyNetwork類需要一個構造函數。

0

你自己初始化網絡爲null,在你的代碼的第二行,那麼它顯然會拋出NullPointerException

1

注意你也可以立刻在運行C++代碼得到這個錯誤,用默認的NetBeans安裝,如果你的項目的屬性 - >運行 - >控制檯類型被設置爲內部終端而不是外部終端;至少在Ubuntu上使用FLTK圖形時。在這種情況下,這是一個NetBeans內部握手問題,而不是源代碼問題。

0

正如DragonLord所說,這不是一個源代碼問題。你將能夠知道,因爲每當你運行任何C++代碼時都會發生這種情況。我有同樣的問題。不過,我做了一些與DragonLord稍有不同的事情。我將程序的輸出設置爲Project Properties> Run> Console Type並將其設置爲Standard Output。

相關問題