d2_1=(DISK2_1)disk2.disk2_1.map.put(dn,dir2);
这一句当 disk2 或 disk2_1 或 map 或 dn 或 dir2 为 null 时都回出Nullpointexception异常
建议吧这行拆成若干行,比如:Hashmap map = (DISK2_1)disk2.disk2_1.map;
map.put(dn,dir2);再试或者你把全部代码贴出来,让大家找找毛病put(dn,dir2);

解决方案 »

  1.   

    disk2_1的map还没有初始化,是null。
    另外,命名的大小写建议你注意以下准许Java的命名规则。
      

  2.   

    谢谢楼上2位的热心回答。问题我已经解决。原因是我只需要对disk2.disk2_1进行操作就可以了。
    再另外付值给变量d2_1就画蛇添足了。而d2_1的定义是DISK2_1 d2_1
    我想会不会是d2_1没有初始化造成的NULLPOINTER的错误呢。改成如下就不会再出现NULLPOINTER的错误了。
    (DISK2_1)disk2.disk2_1.map.put(dn,dir2)