登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
签到
每天签到奖励2-10圆
导读
排行榜
TG频道
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
VIP申请
VIP网盘
网盘
联系我们
发帖说明
每日签到
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
安全
›
Java中初始化固定大小List的两种方式对比——别让null对 ...
Java中初始化固定大小List的两种方式对比——别让null对象害你NullPointerException
[ 复制链接 ]
游瞠离
2025-6-24 13:39:23
//方法1
int fixedSize = 5;
List<RcGroupConfEntity> list = new ArrayList<>();
// 初始化固定个数的对象并放入 list2
for (int i = 0; i < fixedSize; i++) {
RcGroupConfEntity entity = new RcGroupConfEntity();
list2.add(entity);
}
//方法2
List<RcGroupConfEntity> list = new ArrayList<>(Arrays.asList(new RcGroupConfEntity[5]));
的区别
复制代码
最开始我使用的是第二种,但是一直 list.get(i).setxxx报错,我纳闷了, 我对象有的啊,为啥还是给我报错???
在 Java 开发中,我们经常需要初始化一个固定大小的 List,比如用于占位、批量处理等场景。然而,很多开发者在使用 Arrays.asList(new T[n]) 初始化 List 时,会不小心踩坑,导致后续调用 .setXXX() 方法时出现空指针异常。
本文将通过代码示例,详细对比以下两种初始化方式的区别:
使用循环逐个添加新对象(推荐)
使用数组转换成 List(快捷但有陷阱)
一、方式一:循环添加对象(推荐)
int fixedSize = 5;
List<RcGroupConfEntity> list2 = new ArrayList<>();
for (int i = 0; i < fixedSize; i++) {
RcGroupConfEntity entity = new RcGroupConfEntity();
list2.add(entity);
}
复制代码
✅ 特点:
特性描述每个元素都是真实存在的对象✅ 可以直接调用 .setXXX() 方法安全性高✅ 不会出现空指针异常灵活性好✅ 可根据索引或逻辑动态构造不同对象
示例:为每个对象赋初始值
for (int i = 0; i < fixedSize; i++) {
RcGroupConfEntity entity = new RcGroupConfEntity();
entity.setGroupName("组" + (i + 1));
list2.add(entity);
}
复制代码
二、方式二:数组转 List(快捷写法)
List<RcGroupConfEntity> list2 = new ArrayList<>(
Arrays.asList(new RcGroupConfEntity[5])
);
复制代码
❌ 注意事项:
特性描述所有元素初始为 null❌ 调用 .get(i) 返回 null本质是一个“装箱”操作✅ 把一个数组包装成 List适合占位/预分配⚠️ 但需要后续手动填充对象
❌ 使用时容易出错:
list2.get(0).setPersonConfList(...); // ❌ NullPointerException
复制代码
因为 list2.get(0) 是 null。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
Java
初始化
固定
大小
List
相关帖子
JAVA_笔试
Java+Playwright自动化测试-18- 操作模态对话框弹窗
高效使用Java构建工具,Maven篇|云效工程师指北
《阿里Java开发手册》【强制】所有的覆写方法
Java方法之可变个数形参(Varargs)学习笔记
靠谱的程序员推荐阅读----->《阿里Java开发手册》
全球知名的Java Web开发平台Vaadin上线慧都网!
CopyOnWriteArrayList 的故事--一起看看java原生的读写分离
List之高效安全的 Java 列表深复制工具:ListCopyUtils 的设计与实践
vip免费申请,1年只需15美金$
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
JAVA_笔试
0
406
兜蛇
2025-10-06
业界
Java+Playwright自动化测试-18- 操作模态对话框弹窗
1
844
鞭氅
2025-10-07
安全
高效使用Java构建工具,Maven篇|云效工程师指北
0
17
聊账
2025-10-07
业界
《阿里Java开发手册》【强制】所有的覆写方法
0
444
赶塑坠
2025-10-08
业界
Java方法之可变个数形参(Varargs)学习笔记
0
640
向梦桐
2025-10-09
业界
靠谱的程序员推荐阅读----->《阿里Java开发手册》
0
942
扈怀易
2025-10-10
业界
全球知名的Java Web开发平台Vaadin上线慧都网!
0
543
谲脾
2025-10-11
业界
CopyOnWriteArrayList 的故事--一起看看java原生的读写分离
0
723
广性
2025-10-11
业界
List之高效安全的 Java 列表深复制工具:ListCopyUtils 的设计与实践
0
534
萨瑞饨
2025-10-11
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
游瞠离
2025-6-24 13:39:23
关注
0
粉丝关注
26
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994888
dage888
999994
富账慕
10007
4
柴古香
9995
5
匝抽
9986
6
筒濂
9983
7
孙淼淼
9992
8
凌彦慧
9985
9
崔瑜然
9984
10
慢秤
9979
查看更多