Java之不允许改变的容器

系列文描述:

  该文章是日常笔记系列的第二篇,主要记录了如何使用不允许改变的容器,相信看完肯定有所收获。

不允许改变的容器

作用描述:

最近在研发中间件期间,由于业务需要,需要通过配置生成全局所有的容器,而该容器对外是不允许外界修改的,为了满足这种需求,使用了不可变集合,顾名思义,该种集合除了get操作,不允许外界增删改。

代码演示:

 
  1. import java.util.ArrayList;
  2.     import java.util.Collections;
  3.     import java.util.List;
  4.  
  5.     public class TestMain {
  6.  
  7.     public static void main(String[] args) {
  8.  
  9.         List<TestBean> originList = new ArrayList<>();
  10.         originList.add(TestBean.valueOf(1));
  11.         originList.add(TestBean.valueOf(2));
  12.         originList.add(TestBean.valueOf(3));
  13.  
  14.         List<TestBean> unmodifiableList = Collections.unmodifiableList(originList);
  15.         for (TestBean t : unmodifiableList) {
  16.             System.out.println(t.getA());
  17.         }
  18.         unmodifiableList.add(TestBean.valueOf(4));
  19.       }
  20.     }
  21.  
  22.     class TestBean {
  23.  
  24.     private int a;
  25.  
  26.     public static TestBean valueOf(int a) {
  27.  
  28.         TestBean testBean = new TestBean();
  29.         testBean.a = a;
  30.  
  31.         return testBean;
  32.     }
  33.  
  34.     public int getA() {
  35.         return a;
  36.     }
  37.  
  38.     public void setA(int a) {
  39.         this.a = a;
  40.     }
  41.     }

代码很简单,先是构建了一个正常的List,后通过 List unmodifiableList = Collections.unmodifiableList(originList); 构建不可变容器,运行结果如下:

不可变容器.png

由于不可变容器不允许对容器做add操作,于是报错了,直接查看jdk源码

不可变容器源码.png

一句话总结:

在研发中,如果需要使用到不可变容器来规避风险,那么可以尝试使用jdk提供的不可变容器,除了List外还有Map、Set等,具体可以自己查看。

结尾说点什么

说好的一周一篇,上个周末沉迷docker的使用导致废了,然后最近又是每天都是差不多十二点下班,所以只能下班后花时间写总结最近的笔记了(  ̄▽ ̄)((≧︶≦)


系列博客可以关注公众号:

公众号.jpg

个人网站:http://myblog.lixifan.cn/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值