【发布时间】:2017-11-05 10:30:25
【问题描述】:
我有自定义对象的集合,我需要在我的函数中通过 id 属性找到正确的对象,然后返回他。如果找不到具有该 id 的元素,则函数返回 null。你能帮我修复我的代码吗?就是这样:
public MyObj find(long id) {
return myList.stream()
.filter(obj -> obj.getId() == id)
.map(obj -> {
return obj;
})
.findFirst()
.orElse(null);
}
我有错误的冗余映射调用,带有映射功能的部分代码是灰色的。这有什么问题?谢谢
【问题讨论】:
-
myList.stream().filter(obj -> obj.getId() == id).findFirst().orElse(null). -
如果您经常这样做,使用
Map可能会更好;)。 -
我对这个问题投了反对票,因为你在这里发布了代码,但没有说明它有什么问题。我们希望看到您期望代码做什么,为什么期望它这样做,它实际上在做什么,以及为什么它是错误的。请edit您的问题包含此信息,然后我将考虑撤回我的反对票。见:How to create a Minimal, Complete, and Verifiable example
-
@JoeC 我不同意。 OP显然努力解决这个问题。 OP 描述了问题所在“我有错误的冗余映射调用,并且带有映射功能的部分代码是灰色的”。我觉得这个问题很好。不是一个值得赞成的问题,但也不是一个值得反对的问题。
-
你认为
map(obj -> { return obj; })完成了什么??