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

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

相关文章

  • java数据库连接池新手入门一篇就够了,太简单了!

    java数据库连接池新手入门一篇就够了,太简单了!

    数据库连接池负责分配、管理和释放数据库连接,释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏,这项技术能明显提高对数据库操作的性能
    2021-06-06
  • SpringBoot项目依赖和配置最新示例讲解

    SpringBoot项目依赖和配置最新示例讲解

    这篇文章主要介绍了SpringBoot项目依赖和配置,这里主要是搭建项目常用到的maven依赖以及搭建项目会需要用到的一些配置文件,本文通过示例代码给大家详细讲解,需要的朋友可以参考下
    2022-11-11
  • Java中ArrayList去除重复元素(包括字符串和自定义对象)

    Java中ArrayList去除重复元素(包括字符串和自定义对象)

    本文主要介绍了Java中ArrayList去除重复元素(包括字符串和自定义对象)的方法。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • Java IO 之文件读写简单实例

    Java IO 之文件读写简单实例

    这篇文章主要介绍了Java IO 之文件读写简单实例的相关资料,需要的朋友可以参考下
    2017-06-06
  • WebService教程详解(二)

    WebService教程详解(二)

    这篇文章主要介绍了WebService教程详解(二) 的相关资料,需要的朋友可以参考下
    2016-03-03
  • MyBatis动态SQL标签的用法详解

    MyBatis动态SQL标签的用法详解

    这篇文章主要介绍了MyBatis动态SQL标签的用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • AsyncHttpClient ListenableFuture源码流程解读

    AsyncHttpClient ListenableFuture源码流程解读

    这篇文章主要为大家介绍了AsyncHttpClient ListenableFuture源码流程解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • 浅析 ArrayList 和 LinkedList 有什么区别

    浅析 ArrayList 和 LinkedList 有什么区别

    ArrayList 和 LinkedList 有什么区别,是面试官非常喜欢问的一个问题。今天通过本文给大家详细介绍下,感兴趣的朋友跟随小编一起看看吧
    2020-10-10
  • Java并发系列之Semaphore源码分析

    Java并发系列之Semaphore源码分析

    这篇文章主要为大家详细介绍了Java并发系列之Semaphore源码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • mybatis where 标签使用

    mybatis where 标签使用

    where标记的作用类似于动态sql中的set标记,本文主要介绍了mybatis where 标签使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03

最新评论