当前位置: 技术问答>java相关
NullPointerException问题,急急
来源: 互联网 发布时间:2015-09-29
本文导语: 我定义了一个类 FS3, class FS3{ public FS3(){} public FS3(STG3 st, DISK2 di){ stg3=st; disk2=di; } STG3 stg3; DISK2 disk2; 其中DISK2是一个定义好的类。 class DISK2 { DISK2_1 disk2_1; DISK2_2 d...
我定义了一个类 FS3,
class FS3{
public FS3(){}
public FS3(STG3 st, DISK2 di){
stg3=st;
disk2=di;
}
STG3 stg3;
DISK2 disk2;
其中DISK2是一个定义好的类。
class DISK2 {
DISK2_1 disk2_1;
DISK2_2 disk2_2;
public DISK2(DISK2_1 d1,DISK2_2 d2){
disk2_1 = d1;
disk2_2 = d2;
}
public DISK2(){
disk2_1 = new DISK2_1();
disk2_2 = new DISK2_2();
}
public String toString(){
return ("DISK2:["+disk2_1+disk2_2+"]");
}
}
其中DISK2_1和DISK2_2也已经分别定义好了。
class DISK2_1 {//dn->DIR2
HashMap map;
public DISK2_1(HashMap m){
map = m;}
public DISK2_1(){
map = new HashMap();
}
public String toString(){
return ("DISK2_1:"+map);
}
}
class DISK2_2 {//Pa->PAGE
HashMap map;
public DISK2_2(HashMap m){
map = m;
}
public DISK2_2(){
map = new HashMap();
}
public String toString(){
return ("DISK2_2:"+map);
}
}
现在的问题是当我在主函数里
调用时,出现错误Nullpointexception
d2_1=(DISK2_1)disk2.disk2_1.map.put(dn,dir2);
class FS3{
public FS3(){}
public FS3(STG3 st, DISK2 di){
stg3=st;
disk2=di;
}
STG3 stg3;
DISK2 disk2;
其中DISK2是一个定义好的类。
class DISK2 {
DISK2_1 disk2_1;
DISK2_2 disk2_2;
public DISK2(DISK2_1 d1,DISK2_2 d2){
disk2_1 = d1;
disk2_2 = d2;
}
public DISK2(){
disk2_1 = new DISK2_1();
disk2_2 = new DISK2_2();
}
public String toString(){
return ("DISK2:["+disk2_1+disk2_2+"]");
}
}
其中DISK2_1和DISK2_2也已经分别定义好了。
class DISK2_1 {//dn->DIR2
HashMap map;
public DISK2_1(HashMap m){
map = m;}
public DISK2_1(){
map = new HashMap();
}
public String toString(){
return ("DISK2_1:"+map);
}
}
class DISK2_2 {//Pa->PAGE
HashMap map;
public DISK2_2(HashMap m){
map = m;
}
public DISK2_2(){
map = new HashMap();
}
public String toString(){
return ("DISK2_2:"+map);
}
}
现在的问题是当我在主函数里
调用时,出现错误Nullpointexception
d2_1=(DISK2_1)disk2.disk2_1.map.put(dn,dir2);
|
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);
这一句当 disk2 或 disk2_1 或 map 或 dn 或 dir2 为 null 时都回出Nullpointexception异常
建议吧这行拆成若干行,比如:
Hashmap map = (DISK2_1)disk2.disk2_1.map;
map.put(dn,dir2);
再试
或者你把全部代码贴出来,让大家找找毛病
put(dn,dir2);
|
disk2_1的map还没有初始化,是null。
另外,命名的大小写建议你注意以下准许Java的命名规则。
另外,命名的大小写建议你注意以下准许Java的命名规则。