Pyr*_*cal 3 java architecture collections null
在大多数情况下,当你可以返回null/empty对象以避免空值时,它很棒,但是像对象一样集合呢?
在Java中,如果在地图中找不到in ,则Map
返回.null
key
get(key)
null
在这种情况下,我能想到避免s 的最好方法是返回一个Entry<T>
对象,该对象可以是EmptyEntry<T>
或包含值T
.
当然我们避免使用null
,但现在你可以有一个类强制转换异常,如果你不检查它是否EmptyEntry<T>
.
有没有更好的办法来避免null
S IN Map
的get(K)
?
为了论证,让我们说这种语言甚至没有null
,所以不要说只是使用nulls
.
两种可能的解决方
提供包含(键)功能.如果为不存在的密钥调用get(key),则抛出异常.缺点是:在contains()重复操作之后调用get(); 效率不高.
功能语言在类似情况下使用Maybe.本文介绍如何在Java中实现Maybe.