日期:2014-05-20  浏览次数:20812 次

HashMap报空指针,求帮助啊!!!
public static void main(String[] args) {
StudentService studentService = new StudentService();
Student student=null;
for (int i=1; i<=10;i++){
if(i<5){
student = new Student(i,"student"+i,"s100"+i);
}
else{
student = new Student(i,"studnet"+i,"s200"+i);
}
studentService.addStudent(student);//执行到这边的时候报错了。
}

public class StudentService  {
public HashMap<String, Student> students = null ;
public void StudnetService(){
students = new HashMap<String, Student>();
                }
public void addStudent(Student student) {
if(student==null){
System.out.println("error!!!!!!!!!!");
}else{
System.out.println(student);
}
if(student.getStuName()==null){
System.out.println("error2222!!!!!!!!!!");
}else{
System.out.println(student.getStuName());
}

students.put(student.getStuName(), student);
}


}

定义了一个Student类
public class Student {
private String StuName;
private int stuNo;
private String ClassName;
public Student(int stuNo, String stuName, String ClassName ) {
    super();
this.StuName = stuName;
this.stuNo = stuNo;
this.ClassName = ClassName;
}
public String getStuName() {
return StuName;
}
还有有其他参数的get和set就没贴了。
}

调用add方法的时候打印出来的两个参数都不为空啊,
值分别是student [StuName=student1, stuNo=1, ClassName=s1001]和
student1,但是为啥put的时候就出错了呢
HashMap 指针

------解决方案--------------------
介个……访问域对不对的……
------解决方案--------------------
StudnetService这个constructer貌似拼错了
------解决方案--------------------
引用:
都是在同一个class下啊,除了另外定义的那个类。