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

解决方案 »

  1.   

    endTime==null && "".equals(endTime)
    怎么可能,永为false把所有为空判断的条件改成类似
    endTime==null || "".equals(endTime)
      

  2.   

    你的if .. else..本身有问题,条件约束交叉
      

  3.   

    endTime==null && "".equals(endTime)
    怎么能做到这个条件的呢。
      

  4.   

    你们看看这个,都是dead code了,哎..运行出错,我也不行这样我都试过了
      

  5.   


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