HashMap报空指针,求帮助啊!!!

fengliuqianl 2013-06-28 04:58:46
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的时候就出错了呢
...全文
440 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengliuqianl 2013-06-28
  • 打赏
  • 举报
回复
呃,原来是那个StudentService写错了,然后Ctrl+1的时候改成那样了, 谢谢各位大哥大姐啊。
soton_dolphin 2013-06-28
  • 打赏
  • 举报
回复
构造函数没有返回类型。。。 public void StudnetService(){ 是错的。 应该是public StudentService
菖蒲老先生 2013-06-28
  • 打赏
  • 举报
回复
public void StudnetService(){ students = new HashMap<String, Student>(); } 构造函数哪来的void??? 改成 public StudentService() {
kemucc 2013-06-28
  • 打赏
  • 举报
回复
引用 4 楼 fengliuqianl 的回复:
都是在同一个class下啊,除了另外定义的那个类。 “StudnetService这个constructer貌似拼错了”是那个呢?
就那个构造函数拼错了……
fengliuqianl 2013-06-28
  • 打赏
  • 举报
回复
都是在同一个class下啊,除了另外定义的那个类。 “StudnetService这个constructer貌似拼错了”是那个呢?
kemucc 2013-06-28
  • 打赏
  • 举报
回复
StudnetService这个constructer貌似拼错了
kemucc 2013-06-28
  • 打赏
  • 举报
回复
介个……访问域对不对的……
fengliuqianl 2013-06-28
  • 打赏
  • 举报
回复
好像有点乱,整理了下,是这样: 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); } ////////////////////// 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);//执行到这边的时候报错了。 } } 另外还有个类

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧