我有一个基于MVC的Java应用程序,它有三个模型:Room
,Student
和StudentRoom
。
StudentRoom
包含Room
和Student
的对象。
现在我遇到的问题是,如果我的SQL查询没有返回结果,我会像这样检查学生姓名的值
if(studentRoom.student.name != null) {
}
我会得到一个NullPointerException
而且我不知道如何处理它。
我应该设置Student.name = "";
,因为我的查询没有结果吗?
答案 0 :(得分:3)
if(studentRoom != null && studentRoom.student != null && studentRoom.student.name != null){
//.. Access student
}
以上解决方案看起来有点奇怪。您最好使用getter/setter
方法,而不是直接访问对象。
除此之外,您可以在isStudentAvailable()
中定义studentRoom
等方法,以检查其中是否包含Student
。
我应该设置Student.name ="&#34 ;;既然我的查询没有结果?
这完全取决于您的使用案例。但我必须更好地保留null
,因为它会引发异常,而不是通过null
检查验证。
答案 1 :(得分:0)
您可能需要一个try / catch语句。像这样:
try {
// do process here
} catch (NullPointerException npe) {
//to do if student is null
}
但请注意,如果try语句中有任何对象,则仍会抛出NullPointerException
。希望这会有所帮助。