请大家帮我看看我的Java代码34行为什么会报空指针异常?

g.getStudents()返回的是一个Set<Student> 对象,搞不懂为什么会报空指针呢?望大神指教!

你的set是通过g.getStudents()获得的,问题是你在Grade g=new Grade("","");这个构造方法中有没有初始化Grade中的students这个属性,没有初始化肯定会报空指针错误了,希望能够帮助你!追问

确实是因为students没有初始化,感谢,还有一点没弄懂,既然g.getStudent()返回的是null,那么不是应该33行就报错了吗,为什么是在34行报错呢?

追答

第33行:g.getStudents();只能说这个返回值是null,同时你用set接收了这个null,在这个过程中你只是接收值,并没有使用这个null;而在34行,你在执行set.xxx方法时因为set是null所以会报空指针错误。

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-08-21
打个断点调试一下啊,看看g.getStudents()返回的是不是null

你是不是该调用g.setStudents(****);
相似回答
大家正在搜