首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

HashMap put方法 报错NullPointerException

2013-07-20 
求助 HashMap put方法 报错NullPointerException本帖最后由 cfrex 于 2013-07-18 10:21:45 编辑新手学习,

求助 HashMap put方法 报错NullPointerException
本帖最后由 cfrex 于 2013-07-18 10:21:45 编辑 新手学习,还没学过泛型,所以不用泛型.程序运行到添加对象到HashMap时,就报NullPointerException... 

/*
 * 用HashMap 做学生管理
 */

import java.util.*;

public class Studentmanager {

public static void main(String[] args)  {
Stumanager man=new Stumanager();
    Scanner reader=new Scanner(System.in);
    while(true)                                 //选择界面
      {
    System.out.println("1:添加学生");
    System.out.println("2:显示学生信息");
    System.out.println("3:修改学生成绩");
    System.out.println("4:删除学生");
    System.out.println("5:退出");
    int rd=reader.nextInt();
    if(rd==1)                                //添加学生
    {
    System.out.println("输入学号");
    int stuno=reader.nextInt();
    System.out.println("输入姓名");
    String name=reader.next();
    System.out.println("输入学生成绩");
    int score=reader.nextInt();
    Student stu1=new Student(stuno,name,score);
       man.add(stuno,stu1);
    }
    else if(rd==2)                         //显示学生信息
    {
    System.out.println("输入学号");
    int stuno=reader.nextInt();
    man.info(stuno);
    }
    else if(rd==3)                        //修改成绩
    {
    System.out.println("输入学号");
    int stuno=reader.nextInt();
    Student stu=(Student) man.hm1.get(stuno);
    System.out.println("原成绩为"+stu.getScore());
    System.out.println("输入学生新成绩");


    int score=reader.nextInt();
    man.scomod(stuno, score);
    }
    else if(rd==4)                        // 删除学生信息
    {
    System.out.println("输入学号");
    int stuno=reader.nextInt();
    man.studel(stuno);
    }
    else if(rd==5)
    {
    System.exit(0);
    }
      }
}

}
//学生管理类
class Stumanager
{
HashMap hm1=null;
public Stumanager()
{
HashMap hm1=new HashMap();
}
//添加学生
public void add(int stuno,Student stu)
{
System.out.println("开始要加入hm1");
hm1.put(stuno, stu);
}
//显示学生信息
public void info (int stuno)
{
if(hm1.containsKey(stuno))
{
Student stu=(Student) hm1.get(stuno);
System.out.println("姓名:"+stu.getName());
System.out.println("学号:"+stu.getStuno());
System.out.println("成绩:"+stu.getScore());
}
}
//修改学生成绩
public void scomod (int stuno,int score)
{
if(hm1.containsKey(stuno))
{
Student stu=(Student) hm1.get(stuno);
stu.setScore(score);
}
}
//删除学生
public void studel (int stuno)
{
hm1.remove(stuno);
}
}
//学生类
class Student
{
private int stuno;     //学号
private String name;   //姓名
private int score;     //成绩
public Student(int stuno, String name, int score)   //学生类构造方法
{
this.stuno = stuno;
this.name = name;
this.score = score;
}
public int getStuno() {
return stuno;
}
public void setStuno(int stuno) {
this.stuno = stuno;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}


}

HashMap Java put
[解决办法]
楼主将Stumanager类中的

public Stumanager()
    {
        HashMap hm1=new HashMap();
    }

改为
public Stumanager()
    {
        hm1=new HashMap();
    }

就行了。很明显是对象没搞清楚啊
[解决办法]
public Stumanager()
    {
        HashMap hm1=new HashMap();
    }
改成
public Stumanager()
    {
      hm1=new HashMap();
    }

热点排行