List.addAll方法的入参不能为null

Java List合并全解析:从addAll到并发场景的实战指南 在Java集合框架中,List作为最常用的数据结构之一,其合并操作是数据处理的基础。从原理上讲,合并操作涉及集合的扩容机制、元素复制策略以及内存管理。在技术价值层面,高效的合并方法能显著提升程序性能,尤其在处理大数据量时避免OOM(内存溢出)问题。应用场景广泛,包括数据聚合、缓存更新、配置合并等。本文聚焦于Java List合并,深入探讨了线程安全、数据一致性等核心问题,并对比了addAll、Stream API以及CopyOnWriteArrayList等不同方案的性能差异与适用场景,为高并发环境下的集合 阅读详情

缘由:

       某天,发现一段日志中出现了诡异的NPE。经过定位,认为是ArrayList不能加入null所致。

验证:

       new一个ArrayList,然后调用其addAll方法,并将入参设为null。

public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.addAll(null);
        System.out.println("运行到此说明list.addAll的参数可以为null。");
    }

实验结果为:

 

Exception in thread "main" java.lang.NullPointerException
	at java.util.ArrayList.addAll(ArrayList.java:581)
	at Scratch.main(scratch_2.java:7)

Process finished with exit code 1

可以看到,addAll是不能加入null的。

具体原理就不在深究了,感兴趣的可以debug进去看一下。

那么,addAll既然不能加入null,add是否也不能加入null呢?一起来验证一下:

public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add(null);
        System.out.println("运行到此说明list.add的参数可以为null。");
    }

来看下实验结果:

运行到此说明list.add的参数可以为null。

Process finished with exit code 0

nice! No Problem,说明add方法完全是可以加入null的。

总结一下:

       日常编码中,如果ArrayList中要addAll,必须提前进行判null处理。而调用add则无须此操作。

YOLOv8自定义训练:车牌识别全流程(从标注到推理,附可视化代码) 车牌检测全流程实践指南 摘要:本文详细介绍了基于YOLOv8的车牌检测完整实现方案。针对车牌检测中的三大难点(小目标、多角度、光照变化),提供了从数据准备到模型部署的全流程解决方案。重点包括:1)数据采集与标注规范;2)针对小目标的YOLOv8模型优化配置;3)K-means锚框聚类方法;4)训练参数调优策略。通过实际验证,该方法可获得95%以上的检测准确率,并附有完整的代码实现和可视化工具,便于开发者快速复现应用。 (字数:149字) 阅读详情

相关推荐

EDA开源仿真工具verilator入门4:访问函数介绍

访问函数(Visitor Function)是verilator算法实现的主要工作方式之一,本节将介绍一下访问函数。

fangfanglovezhou的博客 1074

List.addAll方法的入参能否为null

阅读List源码注释可知:addAll的集合中一个或多个元素为空或集合为空都会抛出空指针异常。 看一眼具体实现类的方法。 ArrayList.addAll,若集合为空则会抛空指针异常。 可见使用addAll方法时应先判断入参集合时候为null ...

Champ.Ping的博客 3316

从Verilog到GDS:手把手教你搞定Calibre LVS物理验证(附常见报错解决)

本文详细介绍了从Verilog到GDS的Calibre LVS物理验证全流程,包括工具链配置、RTL到SPICE网表转换、LVS运行配置及高级技巧。重点解析了常见报错如网络不匹配、器件不匹配和电源引脚缺失的解决方案,帮助工程师高效完成芯片物理验证,确保设计正确性。

culing2941的博客 507

集合的addAll方法--list.addAll(null)会报错--java.lang.NullPointerException

Exception in thread "main" java.lang.NullPointerException at java.util.ArrayList.addAll(ArrayList.java:559) at com.iflytek.epdcloud.recruit.utils.quartz.Acool.main(Acool.java:16) import java.u...

weixin_30869099的博客 2166

LangGraph的容错机制:从节点失败到图级回滚

核心概念铺垫:讲解LLM应用容错与事务性的核心概念(幂等性、重试策略、降级策略、快照、回滚、原子性、一致性、隔离性、持久性、最终一致性),对比LangGraph容错机制与传统数据库ACID事务、Apache Airflow/Kubernetes Workflow/Kubeflow Pipelines容错机制的异同;LangGraph容错机制的演进历史:用markdown表格梳理LangGraph从0.0.1到1.5.0(截止202X年X月)的容错机制发展历程;节点级别的容错:重试与降级。

AI Python 编程之道的博客 171

CorelDRAW 2019安装指南:从下载到激活的完整步骤

本文提供了一份详细的CorelDRAW 2019安装指南,涵盖从下载安装包、检查系统环境到完成激活的完整步骤。文章重点解析了安装过程中的关键选项设置,并分享了首次启动后的优化配置与常见问题解决方案,旨在帮助用户高效、顺利地完成这款经典矢量设计软件的安装与配置。

weixin_29213827的博客 824

List不能存放NULL值--List.addAll(null)

List.addAll(null);

yuerliang的专栏 1760

21、汽车喷漆目标区域识别:机器学习与深度学习的应用

本文探讨了机器学习与深度学习在汽车喷漆目标区域识别中的应用,重点利用卷积神经网络(CNN)提高喷漆效率并减少油漆浪费。通过构建和预处理包含多种汽车类型的数据集,采用ResNet-18、ResNet-50和MobileNet-v2等模型进行训练与评估,结果表明ResNet-50在准确率和鲁棒性方面表现最佳。研究还分析了数据裁剪、标签处理、网络架构差异以及光照和遮挡对识别效果的影响,并提出了系统实现流程。最后,文章展望了多传感器融合、模型优化和场景适应性等未来研究方向,为智能化喷漆工艺提供了技术参考。

5b6n7m8的博客 101

java addall 不能传null_使用List的addAll()方法请判空指针

在写代码的时候经常会用到List,Set的addAll()方法,但是要注意addAll()方法不能传入空指针。1 packagelink.mengya.utils;23 importlink.mengya.User;45 import java.util.*;67 /**8 * Created by chang on 16/2/20.9 */10 public classListTest {11...

weixin_39937312的博客 2774

WPF实战项目十七(客户端):数据等待加载弹框动画

1、在Common文件夹下新建文件夹Events,新建扩展类UpdateLoadingEvent。2、新建一个静态扩展类DialogExtensions来编写注册和推送等待消息弹框方法。3、在ViewModel中添加实现类NavigationViewModel。5、在View文件夹下新建用户控件ProgressView.xmal。4、在主窗体MainView.xmal中给弹窗界面命名。6、在MainView.xmal.cs中注册消息。

yigu4011的博客 2345

人工智能---什么是Transformer?

Transformer是一种强大的神经网络架构,最初由Google的研究人员在论文《Attention is All You Need》中提出,用于自然语言处理任务,特别是在机器翻译方面取得了巨大成功。Transformer的核心思想是完全基于自注意力机制(self-attention mechanism)来实现序列到序列(sequence-to-sequence)的学习。它在自然语言处理(NLP)和其他序列到序列任务中表现出色,逐渐成为该领域的主流模型。近些年也逐渐在自动驾驶领域有所应用。

智能汽车人的博客 3954

【异常】list.addAll()不能add为null的数据

List<String> lists = new ArrayList<>(); lists.addAll(null); 将会抛出空指针异常。

咸煌的博客 4075

【QT开发教程】使用Qt进行蓝牙低功耗(BLE)编程

蓝牙低功耗(BLE,Bluetooth Low Energy)技术广泛应用于现代设备中,例如智能手表、健身追踪器和物联网设备。Qt提供了一套完整的Bluetooth模块,使开发者可以轻松地在应用程序中实现BLE通信功能。本文将介绍如何在Qt中进行BLE编程,包括基本概念、使用方法以及一些实际的示例。

科技改变人类,技术成就未来 2868

java中list方法addall怎么写_使用List的addAll()方法请判空指针

标签:在写代码的时候经常会用到List,Set的addAll()方法,但是要注意addAll()方法不能传入空指针。1 packagelink.mengya.utils;23 importlink.mengya.User;45 import java.util.*;67 /**8 * Created by chang on 16/2/20.9 */10 public classListTest ...

weixin_33503998的博客 2112

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

java addall 不能传null_null 之AddAll、Add和Boolean

@Test//failedpublic void TestListAddAll(){List travelerInfoSummary=new ArrayList();travelerInfoSummary.addAll(null);}@Test//successpublic void TestListAdd(){List travelerInfoSummary=new ArrayList();tr...

weixin_39838798的博客 489

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

list的addAll出现空指针问题

今天遇到一个问题, 在使用List的addAll方法的时候,如果被添加的对象是null, 会出现空指针异常. 测试代码如下: import java.util.ArrayList; import java.util.List; public class ListAddAll { public static void main(String[] args) { try {

u013135520的博客 2万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

java list.addAll介绍

addAll()是Java集合框架中一个非常实用的方法,它:提供批量添加元素的功能支持在指定位置插入集合比循环添加更简洁高效广泛应用于列表合并、批量初始化等场景使用时需要注意处理null值和索引边界情况,避免常见的运行时异常。

zwh1zwh的博客 653

Java——List 添加元素的方法

List 添加元素的方法 方法1、add 方法: 1、list.add(element);直接给list集合添加元素,先添加的排在集合前边(List集合有序)。 2、list.add(index,element);给list集合指定的索引'index',添加元素'element'。 示例和注释: @Test public void addTest(){ /** * 集合添加元...

WZY_snail的博客 5万+

ArrayList的addAll方法

  方法实现如下: 1 public boolean addAll(Collection c) { 2 Object[] a = c.toArray(); 3 int numNew = a.length; 4 ensureCapacity(size + numNew); // Increments modCount 5 System.arra...

QQ40153258的博客 966

java list 去除null_List 中去除 null 方法讨论

先看下面的程序段:public static voidmain(String[] args) {List arrays = new ArrayList();arrays.add(2);arrays.add(null);arrays.add(456);arrays.add(null);arrays.add(789);System.out.println(arrays);}注:一个list,向其中插入...

weixin_39676242的博客 1214

Java List合并全解析:从addAll到Stream API的实战指南

在Java集合框架中,List作为最常用的数据结构之一,其合并操作是数据处理的基础技能。从底层原理来看,集合合并涉及元素引用复制、内存管理和性能优化等核心机制。掌握高效的合并技术能显著提升数据处理能力,尤其在数据聚合、批量操作和结果汇总等应用场景中至关重要。本文聚焦Java List合并的多种实现方式,深入探讨addAll方法的批量拷贝机制与Stream API的声明式编程优势,帮助开发者根据线程安全、去重排序等实际需求选择最佳方案,实现代码性能与可维护性的平衡。

weixin_30628801的博客 327

Kotlin调用list的addAll添加对象时报错解决方法

报错信息: Smart cast to ‘List’ is impossible, because ‘data.list’ is a mutable propert that could have been changed by this time 对应代码: if (data.list != null) { mDataList.addAll(data.list) } 原因 Kotl...

蓝不蓝编程 2268

TreeSet的addAll报错

关于TreeSet和HashSet的addAll报错 使用TreeSet的addAll() 一个不为空的list集合结果报空指针,而使用HashSet却没有报错; 原因在于TreeSet底层是TreeMap,TreeMap的key不能为null 而HashSet的底层是HashMap,HashMap的key可以为null ...

white_while的博客 729

集合中addAll()方法使用注意!

public static void main(String[] args) { List <String> b = new ArrayList<>(); b.add("1"); b.add("1"); b.add("1"); List <String> a =...

IT枫斗者的博客 4803

list addAll java.lang.UnsupportedOperationException: null

List<String> produceOrderGoodsKeyList = new ArrayList<>(); String[] produceOrderGoodsKeys = produceExport.getProduceOrderGoodsConf().split(","); produceOrderGoodsKeyList = new ArrayList<>(Arrays.asList(produceOrderGoodsKeys)) produceKey.

Mr_ZhangAdd的博客 719

null 之AddAll、Add和Boolean

@Test //failed public void TestListAddAll(){ List<TravelerInfo> travelerInfoSummary=new ArrayList<TravelerInfo>(); travelerInfoSummary.addAll(null); } @Test //success public void TestLis...

weixin_30834019的博客 199
上一篇: Spring boot -- 配置文件《三》
下一篇: 分布式系统需满足CAP原理
心潮逐浪
博客等级 码龄15年 5粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值