Rah*_*hra 5 java nullpointerexception optional java-8
我正在使用Map<String, Optional<List<String>>>.我得到一个明显NullPointerException的结果是因为结果是null关键.
有没有办法处理null情况?
public Map<MyEnum, Optional<List<String>>> process(Map<MyEnum, Optional<List<String>>> map) {
Map<MyEnum, Optional<List<String>>> resultMap = new HashMap<>();
// Getting NullPointerException here, since map.get(MyEnum.ANIMAL) is NULL
resultMap.put(MyEnum.ANIMAL, doSomething(map.get(MyEnum.ANIMAL).get()));
// do something more here
}
private Optional<List<String>> doSomething(List<String> list) {
// process and return a list of String
return Optional.of(resultList);
}
Run Code Online (Sandbox Code Playgroud)
我试图if-else通过使用Optional 避免检查null.
您可以使用Map的getOrDefault方法.
返回指定键映射到的值,或者
defaultValue此映射是否不包含键的映射.
resultMap.put(MyEnum.ANIMAL,
map.getOrDefault(MyEnum.ANIMAL, Optional.of(new ArrayList<>())) );
Run Code Online (Sandbox Code Playgroud)
这可以避免null通过该方法检查您.
| 归档时间: |
|
| 查看次数: |
99 次 |
| 最近记录: |