java中集合选取怎么选
有时有人认为Optional
类型值得在集合中使用。 据称,它解决了以下问题: HashMap
在没有键映射以及值null
映射到键的情况下返回null
。 如果使用Map<Optional<Something>>
则可以清楚地区分缺少的映射和缺少的值。 这样一来,您在兔子洞中的位置会更深一层。
首先:
您可以
告诉一个键是否映射为null
或不使用Optional
不映射。 有方法containsKey()
。 这是又一个方法调用,用于将非映射键与映射的null
值分开。 但是,调用Optional
的方法也是。 那有什么意义呢? 另一方面
你不需要
判断键是否已映射为null
或缺少映射。 如果两种情况下您的程序代码不同,则您以错误的方式创建了用于企业登录的代码。 这肯定是代码的味道。 将null
视为“什么都没有”,而不是“将null
分配给键'aaaaaarrghhh'”,而是大声说:什么都没有分配给键'aaaaaarrghhh'。 你看? 除了所有人现在都在办公室里看着您之外,没有任何区别。
并在Map
使用optional作为值
你会
过一会儿,在兔子洞中将其深一层。 代码过着独立的生活。 开发它的不仅是您自己。 在大型组织中,有一些开发人员肯定在代码编写时就醉了。 (这是某些代码的唯一合理解释。)它们很快就会用以下命令填充您的Map<Optional<Something>>
-
null
值, - 缺少
Optional
值 - 甚至带有包装其他内容但不包含“
Something
”的Optional
对象。
有时,如果幸运的话,您甚至可能会发现一些非null
,不存在的Optional<Something>
值。
翻译自: https://www.javacodegeeks.com/2015/08/optional-in-collections.html
java中集合选取怎么选