标题:还在担心Java中list的java.lang.NullPointerException吗?
一、实例:可能生成一个对象,然后,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);
}
}