尝试将事物添加到TreeMap时抛出空指针异常

时间:2015-12-02 19:41:36

标签: java

在第10行的Network类中,我正在创建一个TreeMap,然后为它提供Network device和Channel的值,以便将NetworkDevice添加到新的Channel ..

在Network类的第21行我正在创建一个名为AddDevice的方法,它接受一个NetworkDevice作为参数,因此这将是一个AccessPoint对象,因为AccessPoint扩展了NetworkDevice,并且此方法获取传入的NetworkDevice,然后添加它通过说join.put ...

来到TreeMap

在网络中,我还创建了一个名为Channel

的私有字段 在NetworkDevice类中的

我在第9行创建一个新对象

public void join(Network network){
network.addDevice(this);
}

以网络作为参数并调用其.addDevice方法添加其调用的设备,因此我尝试在我的main方法中测试:

accessPoint.join(network);

然而,当我尝试测试它时,这给了我一个空指针异常

我遇到这个例外的三个主要地方是从以下代码块中出现的:

  

在网络课程中我有

public class Network {
private TreeMap<NetworkDevice, Channel> join;
private Map<AccessPoint, Channel> records; 
private static List<Channel> channels = new ArrayList<Channel>();
private Channel channel;

public Network(Channel channel){
        this.channel = channel;
    }

    public void addDevice(NetworkDevice device){
        channel = new Channel(0);
        join.put(device, channel);
        channels.add(channel);
    }
}
  

在我的NetworkDevice类中,我有:

public class NetworkDevice {
protected String address;
protected Channel channel;

public void join(Network network){
        network.addDevice(this);
    }

}
  

我的主要课程仅用于测试目的,但确实返回了   空指针异常

public class Main {
public static void main(String[] args) {
Channel channel = new Channel(1);
Network network = new Network(channel);
AccessPoint accessPoint = new AccessPoint("168.0.0.1");
//Client client = new Client("192.1.1.1");
accessPoint.join(network);  
}
}

我的输出和问题是:

Exception in thread "main" java.lang.NullPointerException
    at Network.addDevice(Network.java:23)
    at NetworkDevice.join(NetworkDevice.java:9)
    at Main.main(Main.java:10)

0 个答案:

没有答案