日期:2014-05-17  浏览次数:20645 次

一个关于String类型判断的问题
String startTime="",String endTime="";

                /**
 * 判断时间条件
 */
if(startTime!=null && !"".equals(startTime) && (endTime==null && "".equals(endTime))){
sb.append(" and FROM_UNIXTIME(createtime,'%Y-%m-%d) =");
sb.append(startTime);
}else if(startTime==null && "".equals(startTime) && (endTime!=null && !"".equals(endTime))){
sb.append(" and FROM_UNIXTIME(createtime,'%Y-%m-%d) =");
sb.append(endTime);
}else if(startTime!=null && !"".equals(startTime) && (endTime!=null && !"".equals(endTime))){
sb.append(" and FROM_UNIXTIME(createtime,'%Y-%m-%d') BETWEEN '");
sb.append(startTime);
sb.append("' AND '");
sb.append(endTime);
sb.append("'");
}

我想问下,为什么这样的判断会进入最后一个判断,我不明白,之前我尝试过很多的判断不行,最后去掉else居然可以了,我想问下,if(){}...      if...else这两个判断有什么区别.....
if

------解决方案--------------------
引用:
你们看看这个,都是dead code了,哎..运行出错,我也不行这样。。。我都试过了


晕,
判断非空的不用改,类似
startTime!=null && !"".equals(startTime) 

判断为空的才要改,类似
endTime==null 
------解决方案--------------------
 "".equals(endTime)