java-collection中的null,isEmpty用法

 更新时间:2022年02月28日 09:38:41   作者:黄国攀  
这篇文章主要介绍了java-collection中的null,isEmpty用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

collection中的null,isEmpty用法

只使用java utils包的isEmpty.

第一种情况

实例化list,但是size为空。

    List<String> list =new ArrayList<>();
        if (list.isEmpty()) {
            System.out.println("1");
        }
        if (!list.isEmpty()) {
            System.out.println("2");
        }
        if (list != null) {
            System.out.println("3");
        }
                if (list != null && list.size() > 0) {
                        System.out.println("4");
                }

输出:

1

3

第二种情况

add值到list中

        List<String> list =new ArrayList<>();
        list.add("da");
        if (list.isEmpty()) {
            System.out.println("1");
        }
        if (!list.isEmpty()) {
            System.out.println("2");
        }
        if (list == null) {
            System.out.println("3");
        }
                if (list != null && list.size() > 0) {
                        System.out.println("4");
                }

输出:

2

4

第三种情况

只创建list的引用,不实例化。

List<String> list = null;
        if (list.isEmpty()) {
            System.out.println("1");
        }
        if (!list.isEmpty()) {
            System.out.println("2");
        }
        if (list != null) {
            System.out.println("3");
        }
        if (list != null && list.size() > 0) {
            System.out.println("4");
        }

输出:

Exception in thread "main" java.lang.NullPointerException 

改进办法:

使用org.apache.commons.collections.CollectionUtils;

CollectionUtils.isEmpty(Collecions<extend>);

可以避免

java.lang.NullPointerException异常

CollectionUtils.isEmpty和 == null的区别

本文所指的 CollectionUtils 所属包

org.apache.commons.collections

CollectionUtils.isEmpty() 包含null,size=0等多种情况

而== null 只能用来判断是否为null

举个例子

        if (CollectionUtils.isEmpty(orderDTO.getOrderDetailList())) {
            log.error("[创建订单]购物车不能为空,customerOrderForm = {}", customerOrderForm);
            throw new CustomerOrderControllerException(CustomerOrderControllerStateEnum.SHOPPING_CART_EMPTY);
        }
        OrderDTO orderDTOResult = orderService.createOrder(orderDTO);

此处if判断条件中,不仅可以判断获取的List是否为null,还能判断获取的List的size是否为0

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 如何解决springcloud feign 首次调用100%失败的问题

    如何解决springcloud feign 首次调用100%失败的问题

    这篇文章主要介绍了如何解决springcloud feign 首次调用100%失败的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • JavaWeb之Ajax的基本使用与实战案例

    JavaWeb之Ajax的基本使用与实战案例

    ajax技术是使页面能局部刷新的一种技术,下面这篇文章主要给大家介绍了关于JavaWeb之Ajax的基本使用与实战案例的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • Java实战之鲜花商城系统的实现

    Java实战之鲜花商城系统的实现

    这篇文章主要介绍了如何利用Java语言实现鲜花商城系统,文中采用的技术有Spring、SpringMVC、Mybatis、JSP等,感兴趣的小伙伴可以了解一下
    2022-05-05
  • springboot集成elasticsearch7的图文方法

    springboot集成elasticsearch7的图文方法

    本文记录springboot集成elasticsearch7的方法,本文通过图文实例代码相结合给大家介绍的非常详细,需要的朋友参考下吧
    2021-05-05
  • Eclipse Jetty server漏洞解决办法

    Eclipse Jetty server漏洞解决办法

    最近给⼀个客户部署项⽬,但是客户的安全稽核有点变态,居然说 Eclipse Jetty Server⾼危漏洞,这篇文章主要给大家介绍了关于Eclipse Jetty server漏洞解决的相关资料,需要的朋友可以参考下
    2023-11-11
  • java实现简单贪吃蛇小游戏

    java实现简单贪吃蛇小游戏

    这篇文章主要为大家详细介绍了java实现简单贪吃蛇小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • servlet的常见注册方式总结

    servlet的常见注册方式总结

    servlet大家都不陌生,当开发 Web 应用程序时,注册 Servlet 是一个常见的任务,本文将介绍一些常见的 Servlet 注册方法,希望对大家有所帮助
    2023-10-10
  • Java多线程、进度条实现赛马实验的示例代码

    Java多线程、进度条实现赛马实验的示例代码

    这篇文章主要介绍了Java多线程、进度条实现赛马实验的示例代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • Java ConcurrentModificationException异常解决案例详解

    Java ConcurrentModificationException异常解决案例详解

    这篇文章主要介绍了Java ConcurrentModificationException异常解决案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • Java自然排序Comparable使用方法解析

    Java自然排序Comparable使用方法解析

    这篇文章主要介绍了Java自然排序Comparable使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04

最新评论