集合中的可选
有時(shí)有人認(rèn)為Optional類型值得在集合中使用。 據(jù)稱,它解決了以下問題: HashMap在沒有鍵映射以及值null映射到鍵的情況下返回null 。 如果使用Map<Optional<Something>>則可以清楚地區(qū)分缺少的映射和缺少的值。 這樣一來,您在兔子洞中的位置會(huì)更深一層。
首先:
您可以
告訴一個(gè)鍵是否映射為null或不使用Optional不映射。 有方法containsKey() 。 這是另一種方法調(diào)用,用于將非映射鍵與映射的null值分開。 但是,調(diào)用Optional的方法也是。 那有什么意義呢? 另一方面
你不需要
判斷鍵是否已映射為null或缺少映射。 如果兩種情況下您的程序代碼不同,則您以錯(cuò)誤的方式為企業(yè)登錄創(chuàng)建了代碼。 這肯定是代碼的味道。 將null視為“什么都沒有”,而不是“將null分配給鍵'aaaaaarrghhh'”,請(qǐng)大聲說出:什么都沒有分配給鍵'aaaaaarrghhh'。 你看? 除了所有人現(xiàn)在都在辦公室里看著您之外,沒有任何區(qū)別。
并在Map使用可選值
你會(huì)
過一會(huì)兒,在兔子洞里再深一層。 代碼過著獨(dú)立的生活。 開發(fā)它的不僅是您自己。 在大型組織中,有一些開發(fā)人員肯定在代碼編寫時(shí)就醉了。 (這是某些代碼的唯一合理解釋。)它們很快就會(huì)在您的Map<Optional<Something>>填充
- null值,
- 缺少Optional值
- 甚至帶有包裝其他內(nèi)容但不包含“ Something ”的Optional對(duì)象。
有時(shí),如果幸運(yùn)的話,您甚至可能會(huì)發(fā)現(xiàn)一些非null ,不存在的Optional<Something>值。
翻譯自: https://www.javacodegeeks.com/2015/08/optional-in-collections.html
總結(jié)
- 上一篇: 苹果电脑锁屏电脑界面设置方法(苹果电脑设
- 下一篇: 激战2电脑cpu(激战2高配电脑)