gpt4 book ai didi

java - 如何在我想要返回的方法中从 lambda 返回值?

转载 作者:行者123 更新时间:2023-12-01 19:56:31 35 4
gpt4 key购买 nike

如何在我想要返回的方法中从 lambda 返回值?

最初,我有这个:

myCollection.forEach(item -> {
try {
doSomething(item);
} catch (Exception e) {
return "There was a problem doing something: " + e.getMessage();
}
});

但我的目的是返回包含所有这些代码的方法,而不是仅返回 lambda。所以,我最终不得不这样做:

String error = "";
myCollection.stream().filter(item -> {
try {
doSomething(item);
return true;
} catch (Exception e) {
error = "There was a problem doing something: " + e.getMessage();
}
return false;
});
if (!error.isEmpty()) {
return error;
}

但这并不是最好的方法。 Java 8 函数式且优雅的方法是什么?

最佳答案

你真的需要在这里使用 Lambda 吗?最好的 Java 方法是在集合上使用 1.5 for-each :

try {
for (final E item : myCollection) {
doSomething(item)
}
} catch (final Exception ex) {
return "blah";
}

请注意,进入和退出 try-catch block 时会付出性能损失,因此最好将其放在循环之外。

关于java - 如何在我想要返回的方法中从 lambda 返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49496615/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com