加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何返回常量集合

发布时间:2020-12-15 05:17:41 所属栏目:Java 来源:网络整理
导读:java中是否有一种方法可以返回对类集合的引用,我无法更改它或更改其元素的数据? 所以,如果我有一张地图Map Integer,Set String没有人可以获得对设定值的引用并向其添加元素? 解决方法 保证Map中的所有对象都不能被修改的唯一方法,即使Map本身是不可修改的,
java中是否有一种方法可以返回对类集合的引用,我无法更改它或更改其元素的数据?

所以,如果我有一张地图Map< Integer,Set< String>>没有人可以获得对设定值的引用并向其添加元素?

解决方法

保证Map中的所有对象都不能被修改的唯一方法,即使Map本身是不可修改的,也就是让对象本身不可变.

unmodifiableMap()方法保证Map不能被修改,但它根本不保证它包含的对象.看看this,了解如何使对象不可变.有关具体示例,请参阅String类的工作原理:您无法修改字符串中的字符,并且所有可以更改字符串的方法(例如:toUpperCase())实际上都返回一个新字符串.这就是你想要的Map中对象的行为.

鉴于问题中的地图包含Set< String>作为它的值,然后在将它们添加到映射之前对集合使用Collections.unmodifiableSet()将使它们成为不可变的,因为如上所述,String已经是不可变的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读