这也是我最近在使用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列表也会爆出空指针异常