化妆品网站开发背景,海鲜网站模板,羽毛球赛事2022直播,八亿wap建站由于服务代码逻辑需要在map中的value存储Boolean#xff0c;后面的代码逻辑 中我想更改Boolean的值发现更改不了#xff0c;后来查找资料才发现原来Boolean实现类是定义为final#xff0c;还是对原理不了解呀#xff0c;以后多注重原理。
测试代码#xff08;final类后面的代码逻辑 中我想更改Boolean的值发现更改不了后来查找资料才发现原来Boolean实现类是定义为final还是对原理不了解呀以后多注重原理。
测试代码final类 HashMapString,Boolean map new HashMapString, Boolean();map.put(1, false);map.put(2, true);map.put(3, false);CollectionBoolean values map.values();for (Boolean v : values) {v Boolean.valueOf(true);}CollectionBoolean vs map.values();System.out.println(vs);结果[false, true, false]
发现值依旧没有发生改变
测试代码自定义类 HashMapInteger,News map new HashMapInteger, News();map.put(1, new News(1, weijie));map.put(2, new News(2, hexiang));CollectionNews values map.values();for (News news : values) {news.id 5;}CollectionNews values2 map.values();for (News news : values2) {System.out.println(news);}结果 News [id5, nameweijie] News [id5, namehexiang] 自定义的类不是final类型因此对象内容通过引用后的变量可以对地址空间的内容进行修改。
参考博客Boolean 源码