Collections踩坑UnsupportedOperationException
Collections是什么?
Collections
是Java.util包下提供的一个工具类,相信大家不陌生,在我们的代码中也不乏其身影。因为其提供的静态API十分便捷地帮助我们完成对集合的相关操作,也让我们的代码也变得更加优雅。
Collections常用的API
一般情况下,我们在业务代码的编写中,使用频率最高的,就是借助Collections来创建集合了。这里我将其划分成为两部分:同步集合和不可修改集合。同步集合不用我多说了,就是将传入的集合进行包装,所有的方法都加上synchronized
关键字,确保方法同步来保证线程安全。而不可修改集合的意思,就是该类集合不允许修改,只允许读。
Collections
为我们提供方便的同时,我们要需要注意使用恰当,否则一不留神就会抛出UnsupportedOperationException
。下面我就已list为例,来聊聊使用Collections
来创建集合需要注意的地方。
Collections.emptyList()
业务场景:后台返回一个空列表到前端。(注意:空列表不能传null,否则前端解析会出差错,坑点!!!)
我们很自然会使用new ArrayList()
和Collections.emptyList()
来创建空集合,返回给前端。这时强烈建议把Collections.emptyList()
代码放在cotroller层使用,不要放在service层。否则别人调用service层方法时,不了解情况就会引发灾难。
public class ControllerTest {/*** 模拟controller中的方法* @return*/public List<String> doController() {Service service = new Service();List