请教一个Java的调试方案,错误原因.

爱么最牛逼的人 爱么最牛逼的人 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我写了一个程序,含有下面的代码:
System.out.println("ChatServer.TeacherGrade.get(MyFriIntegerNum)                 "+ChatServer.TeacherGrade.get(MyFriIntegerNum));
System.out.println("ChatServer.TeacherGrade.get(MyFriIntegerNum).myclientds "+ChatServer.TeacherGrade.get(MyFriIntegerNum).myclientds);
System.out.println("ChatServer.TeacherGrade.get(MyFriIntegerNum).myclientds.get(MyIndexInteger) "+ChatServer.TeacherGrade.get(MyFriIntegerNum).myclientds.get(MyIndexInteger));
System.out.println("ChatServer.TeacherGrade.get(MyFriIntegerNum).myclientds.get(MyIndexInteger).MyState "+ChatServer.TeacherGrade.get(MyFriIntegerNum).myclientds.get(MyIndexInteger).MyState)

打印的结果如下:

其中上文的“TeacherGrade”是一个“HashMap的实例”,他的键为一个“Integer类型的变量”,他的值为一个我自定义的“WorkingSysMemDS”类型,本WorkingSysMemDS类型的代码如下:
public class WorkingSysMemDS {
HashMap<Integer,MyUserDS> myuserds = new HashMap<Integer,MyUserDS>();
HashMap<Integer,MyUserDS> myclientds = new HashMap<Integer,MyUserDS>();
Integer MyUserKeyNum = -1;
byte MyUserGrade = 0;
boolean MyState = true;

public Integer getMyUserKeyNum() {
return MyUserKeyNum;
}
public void setMyCodestate(boolean state){
MyState = state;
}
public void setMyUserKeyNum(Integer OurUserKeyNum) {
MyUserKeyNum = OurUserKeyNum;
}
public byte getMyUserGrade() {
return MyUserGrade;
}
public void setMyUserGrade(byte UserGrade) {
MyUserGrade = UserGrade;
}
public WorkingSysMemDS(Integer MyUserKey,byte i,boolean state,String MyFriRole){
MyUserKeyNum = MyUserKey;
MyUserGrade = i;
MyState = state;
if(MyFriRole.equals("Cus")){
myuserds.put(MyUserKeyNum, new MyUserDS(MyUserKeyNum,MyUserGrade,MyState));
}else{
myclientds.put(MyUserKeyNum, new MyUserDS(MyUserKeyNum,MyUserGrade,MyState));
}
}
}

上面的打印语句中的代码“TeacherGrade”,是一个HashMap,他的init部分的代码如下:
for(Integer i = 0;i<203;i++){
for(Integer j= 0;j<203;j++){
TeacherGrade.put(i, new WorkingSysMemDS(j,(byte)1,false,"Mem"));
}
}

我已经将上面的TeacherGrade中的数据结构,进行了init了呀?
为什么还会报错呢?
上面打印的语句语句中的MyFriIntegerNum这个变量的值为1,MyIndexInteger的值为2.
希望能够得到高手的相助:
为什么我打印语句出的结果,会有:
最后一行为“NullPointerException”,而倒数第二行代码打印的结果为:
null
值?
希望高手帮帮忙!!
这个错误怎么调?
这个错误是什么原因?
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
爱么最牛逼的人
Java SE 62,620 成员 307,251 内容