List.of()

本文探讨了在Java编程中,Arrays.asList()与List.of()创建列表时的区别。实验显示,List.of()创建的列表是不可变的,尝试修改元素会导致UnsupportedOperationException。同时,List.of()不接受null元素,而Arrays.asList()则允许。这些差异在实际编程中需要注意,以避免运行时错误。
摘要由CSDN通过智能技术生成

这也是我最近在使用kafka API时遇到的一个情景

//此处订阅主题时,需要传入的是一个Collection类型的topics
kafkaConsumer.subscribe(Collection<String> topics);

当我直接输入Arrays.asList("demo1")时,IDEA会亲切的提示,可以转换为List.of("demo1");

本人是JDK11

这让我比较好奇,所以测试了一下Arrays.asList和List.of的区别

Arrays.asList() 和 List.of()的区别

//在对列表中下标元素进行修改时
//list.of生产的列表会出现异常
List<String> strings = Arrays.asList("demo1", "demo2", "demo3");
List<String> demo1 = List.of("demo1", "demo2", "demo3");

strings.set(1,"bambi1");
demo1.set(1,"bambi1");//会出现UnsupportedOperationException异常
strings.set(1,"bambi1");
demo1.set(1,"bambi1");//会出现UnsupportedOperationException异常
//list.of生成的列表中,元素不可以为null,不然会报空指针异常
List<String> bambi11 = Arrays.asList("bambi1", null);
List<String> bambi1 = List.of("bambi1", null, "bambi2");//NullPointerException

同理,如果使用contains方法来检测是否存在null值,List.of列表也会爆出空指针异常

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值