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("无结果");
}
}