• java返回集合为null还是空集合


    个人认为在自己写接口时,需要返回集合时返回一个空集合,比如mybatis查询如果返回一个集合,结果为空时也会返回一个空集合而不是null。

    那么这样有什么好处呢?最大的好处就是调用方不用在判断是否为null,可以直接用,因为不用抛空指针。

    当然这也有缺点,如果返回Lists.newArrayList();或者new ArrayList();这会新建一个对象,而这个对象很可能是没必要的,这样白白浪费性能。

    解决方法当然也有,可以用Collections.emptyList();这个方法返回一个空集合,并不会新建对象,而是返回

    public static final List EMPTY_LIST = new EmptyList<>(); 

    这个变量。

    当然这也有缺点,如果调用方只是遍历,这没什么不会报错,但是如果要新增,删除里面的元素那就会报错,

    那么你可能想为什么,原因就是代码里直接写死了调用时报错,那么为什么要这样写呢?

    原因也很简单,如果多个线程对这个集合增删,那么调用方就全乱了,所以采用了直接报错,快速失败的方法

    来解决问题。

    总结:

    返回null,返回new ArrayList<>(),返回EMPTY_LIST 。

    null肯定是不推荐的,那么是新建一个List还是返回空List呢?

    这要根据接口的性能要求,如果性能要求高返回EMPTY_LIST,否则新建一个对象。

  • 相关阅读:
    基于p2p聊天室的原理介绍.个人学习笔记
    一个可移植数据库操作组件的简单介绍
    常见任务
    sql常用语句
    认真写写SQLAlchemy
    Jenkins 安装与使用手册
    Ajax
    支持主流注册中心,SolarMesh发布新版本 SolarMesh
    API标准化对Dapr的重要性
    企业数字化转型,你知道有哪些关键要素吗?
  • 原文地址:https://www.cnblogs.com/zhandouBlog/p/10146852.html
Copyright © 2020-2023  润新知