还在担心Java中list的java.lang.NullPointerException吗?

    技术2022-07-10  159

    标题:还在担心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); } }
    Processed: 0.008, SQL: 9