英文:
Using lambda expression to access a value in a map using an optional key
问题
我需要从地图M<X,Y>
中访问一个值,并且我有一个类型为Optional<X> key
的键。我需要使用lambda表达式,以便我可以检查键是否存在,如果存在,就使用它来访问值,否则返回空。
我正在进行以下操作:
return key.ifPresent(xx -> {
Optional.of(M.getOrDefault(foo(xx), null));
});
但是它报错"void类型被提供,但所需类型是Optional
英文:
I need to access a value from a map M<X,Y>
and I have a key of type Optional<X> key
. I need to use lambda expression such that I can check whether the key is present, if present, access the value using it otherwise, return empty.
I am doing:
return key.ifPresent(xx -> {
Optional.of(M.getOrDefault(foo(xx), null));
});
But it is giving void type provided but required type is Optional<Y>. Suggestions into this?
答案1
得分: 1
以下是翻译好的代码部分:
private Optional<Y> findingY(Map<X, Y> M, Optional<X> key) {
return key.map(M::get);
}
英文:
you could b looking for something like:
private Optional<Y> findingY( Map<X,Y> M, Optional<X> key) {
return key.map(M::get);
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论