游瞠离 发表于 2025-6-24 13:39:23

Java中初始化固定大小List的两种方式对比——别让null对象害你NullPointerException

//方法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));
的区别  最开始我使用的是第二种,但是一直 list.get(i).setxxx报错,我纳闷了, 我对象有的啊,为啥还是给我报错???
 
在 Java 开发中,我们经常需要初始化一个固定大小的 List,比如用于占位、批量处理等场景。然而,很多开发者在使用 Arrays.asList(new T) 初始化 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)
);❌ 注意事项:
特性描述所有元素初始为 null❌ 调用 .get(i) 返回 null本质是一个“装箱”操作✅ 把一个数组包装成 List适合占位/预分配⚠️ 但需要后续手动填充对象❌ 使用时容易出错:

list2.get(0).setPersonConfList(...); // ❌ NullPointerException因为 list2.get(0) 是 null。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

湛恶 发表于 2025-10-14 11:16:44

东西不错很实用谢谢分享

喳谍 发表于 2025-10-17 21:44:17

分享、互助 让互联网精神温暖你我

劳暄美 发表于 2025-12-5 08:24:13

前排留名,哈哈哈

挺喽蹂 发表于 2025-12-14 18:15:36

喜欢鼓捣这些软件,现在用得少,谢谢分享!

铵滔 发表于 2025-12-15 06:29:17

感谢发布原创作品,程序园因你更精彩

卒挪 发表于 2025-12-16 15:56:10

谢谢分享,试用一下

骆贵 发表于 2025-12-31 00:39:38

谢谢分享,试用一下

缀访 发表于 2026-1-9 03:33:14

这个有用。

指陡 发表于 2026-1-14 16:04:28

新版吗?好像是停更了吧。

蒙飘 发表于 2026-1-16 20:07:39

分享、互助 让互联网精神温暖你我

少屠 发表于 2026-1-19 03:58:55

新版吗?好像是停更了吧。

乐敬 发表于 2026-1-24 11:40:02

谢谢楼主提供!

指陡 发表于 2026-1-24 15:14:15

收藏一下   不知道什么时候能用到

赴忽 发表于 2026-1-26 08:32:08

感谢分享

俏挺喳 发表于 2026-2-1 12:15:52

感谢发布原创作品,程序园因你更精彩

簑威龙 发表于 2026-2-2 04:58:28

不错,里面软件多更新就更好了

佴莘莘 发表于 2026-2-3 04:35:08

谢谢分享,试用一下

雨角 发表于 2026-2-6 01:51:41

鼓励转贴优秀软件安全工具和文档!

挡缭 发表于 2026-2-7 06:42:25

喜欢鼓捣这些软件,现在用得少,谢谢分享!
页: [1] 2
查看完整版本: Java中初始化固定大小List的两种方式对比——别让null对象害你NullPointerException