系列文描述:
该文章是日常笔记系列的第二篇,主要记录了如何使用不允许改变的容器,相信看完肯定有所收获。
不允许改变的容器
作用描述:
最近在研发中间件期间,由于业务需要,需要通过配置生成全局所有的容器,而该容器对外是不允许外界修改的,为了满足这种需求,使用了不可变集合,顾名思义,该种集合除了get操作,不允许外界增删改。
代码演示:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class TestMain {
public static void main(String[] args) {
List<TestBean> originList = new ArrayList<>();
originList.add(TestBean.valueOf(1));
originList.add(TestBean.valueOf(2));
originList.add(TestBean.valueOf(3));
List<TestBean> unmodifiableList = Collections.unmodifiableList(originList);
for (TestBean t : unmodifiableList) {
System.out.println(t.getA());
}
unmodifiableList.add(TestBean.valueOf(4));
}
}
class TestBean {
private int a;
public static TestBean valueOf(int a) {
TestBean testBean = new TestBean();
testBean.a = a;
return testBean;
}
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
}
代码很简单,先是构建了一个正常的List,后通过 List unmodifiableList = Collections.unmodifiableList(originList); 构建不可变容器,运行结果如下:
由于不可变容器不允许对容器做add操作,于是报错了,直接查看jdk源码
一句话总结:
在研发中,如果需要使用到不可变容器来规避风险,那么可以尝试使用jdk提供的不可变容器,除了List外还有Map、Set等,具体可以自己查看。
结尾说点什么
说好的一周一篇,上个周末沉迷docker的使用导致废了,然后最近又是每天都是差不多十二点下班,所以只能下班后花时间写总结最近的笔记了(  ̄▽ ̄)((≧︶≦)
系列博客可以关注公众号:
个人网站:http://myblog.lixifan.cn/