public void selectStudent(Student stu) {
//stu通过其他的值参数获取,可能是null,也可能有值
if(stu!=null){
System.out.println("查询成功");
}else{
System.out.println("没有数据");
}}
@Test
public void testStudent2() {
Student stu = new Student();
stu = null;
stu.setFlowID(19);
System.out.println(stu);
}
这时候else{}会报deadcode,因为在方法testStudent2()中,stu已经设置了值,所以stu必不为null,下面就会出现deadcode。
这个是抽象出来的简单模型,其他类的问题大都是因为变量在判断为空之前已经做了引用所以必不为空,导致问题。
解决方案:
返回一个resultset时
public void selectStudent(Student stu) throws Exception {
String sql = "select * from examStudent where FlowID='" + stu.getFlowID() + "'";
System.out.println(sql);
Connection conn = JdbcTools.getConnection();
Statement statement = conn.createStatement();
ResultSet rs = statement.executeQuery(sql);
if (rs.next()) {
System.out.println("有结果");
} else {
System.out.println("无结果");
}
}
本文探讨了Java中空指针异常的问题,并通过一个简单的例子解释了如何避免此类错误的发生。此外,还介绍了使用ResultSet来处理数据库查询结果的方法。


被折叠的 条评论
为什么被折叠?



