-2

我正在写一些代码,但我一直收到这个错误,这与我调用 network.addstation 的位置有关

这是代码,网络方法中还有其他方法,但我想我只显示一个,但是当您调用任何方法时它会出现。任何帮助将不胜感激。谢谢。

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);
    }
}
4

4 回答 4

1

您是否在任何地方构建 MyNetwork 实例?

好像你想要

 Network network = null;

成为

MyNetwork network = new MyNetwork();

因为您试图在未启动的对象上调用方法。但是您的 MyNetwork 类需要一个构造函数。

于 2013-03-21T17:15:24.600 回答
1

请注意,如果您的项目的 Properties->Run->Console Type 设置为 Internal Terminal 而不是 External Terminal,则使用默认 NetBeans 设置运行 C++ 代码时,您也可以立即收到此错误;至少在 Ubuntu 上使用 FLTK 图形时。在这种情况下,这是 NetBeans 内部握手问题,而不是源代码问题。

于 2017-03-20T21:20:41.413 回答
0

您自己在代码的第二行将网络初始化为空,那么它显然会抛出 NullPointerException

于 2013-03-21T17:15:52.683 回答
0

正如 DragonLord 所说,这不是源代码问题。您将能够分辨出来,因为每当您运行任何 C++ 代码时都会发生这种情况。我有同样的问题。不过,我做了一些与 DragonLord 略有不同的事情。我将程序的输出设置为 Project Properties>Run>Console Type 并将其设置为 Standard Output。

于 2017-07-09T14:44:10.740 回答