一、实例:可能生成一个对象,然后,list02[],值为空
List<Ticket> list02 = new TicketService().getTicketByCarIdIdCardGrade(idCard, carId, grade);使得下面的if判断直接进入到了for-each中,造成空指针异常
部分代码如下;
List<Ticket> list02 = new TicketService().getTicketByCarIdIdCardGrade(idCard, carId, grade); if(null==list02) { //可能生成一个对象,然后,list02[],值为空 System.out.println("没有满足该条件的票"); }else { for(Ticket ticket:list02) { System.out.println(ticket); } }二、解决措施:
在if判断中加上list02.size()<=0,即可
注意顺序, 若为if(list02.size()<=0||null==list02),仍有可能会报错,list02.size()必须在不为null的前提下,
注意为短路或,||,若前面为true,则不执行后面的判断, 此处是前面为null,则不执行后面的list02.size()<=0 部分代码如下:
List<Ticket> list02 = new TicketService().getTicketByCarIdIdCardGrade(idCard, carId, grade); if(null==list02||list02.size()<=0) { //可能生成一个对象,然后,list02[],值为空 System.out.println("没有满足该条件的票"); }else { for(Ticket ticket:list02) { System.out.println(ticket); } }