And*_*ong 7 java optional java-8
我正在尝试这样做:
return Optional.of(myMap.getOrDefault(myKey, null));
Run Code Online (Sandbox Code Playgroud)
真的,我想要的是返回一个Optional.of(foundVal)if if,否则Optional.empty().我不相信Optional.of(null)等同于此.我想做什么语法?
也就是说,我怎样才能让地图get返回正确的地图Optional?
Eug*_*ene 11
为什么不简单:
return Optional.ofNullable(myMap.get(myKey));
Run Code Online (Sandbox Code Playgroud)
Sav*_*ior 10
这个
Optional.of(myMap.getOrDefault(myKey, null));
Run Code Online (Sandbox Code Playgroud)
或者真的
Optional.of(null);
Run Code Online (Sandbox Code Playgroud)
会失败NullPointerException。正如javadoc所述
抛出:
NullPointerException - 如果value为 null
Optional#ofNullable当您不知道传递给它的值是否为null:
参数:
value- 要描述的可能为空的值
并且因为在没有给定键的条目时Map#get(Object)已经返回null
返回:
指定键映射到的值,或者null如果此映射不包含该键的映射
你不需要使用getOrDefault一个null默认值。你可以直接使用
Optional.ofNullable(myMap.get(myKey));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
698 次 |
| 最近记录: |