关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。
上个月关门了。
改进这个问题
我有一个方法,它在包含枚举i的列表中进行过滤
if (availableImageSizes.stream()
.filter(t -> t.getNameSuffix().equals("-xs"))
.findFirst().isPresent())
{
int width = availableImageSizes.stream()
.filter(t -> t.getNameSuffix().equals("-xs"))
.findFirst().getWidth();
int height = availableImageSizes.stream()
.filter(t -> t.getNameSuffix().equals("-xs"))
.findFirst().getHeight();
}
如您所见,我尝试根据名称uffix对列表进行过滤,过滤之后,我希望将该值的宽度和高度Map到一个变量。但代码是错误的,即使它工作,它是如此丑陋。
我能在一个lambda中Map多个变量吗?如果是的话,我怎样才能做到这一点?
2条答案
按热度按时间hmtdttj41#
首先,您的目标是删除重复的代码:
我不知道“一只羔羊”是什么意思。但是,您可以通过一个
Stream
以及Optional
方法调用。但是,不能同时重新运行两个或多个值。解决方案是返回要分解到的数组width
以及height
. 最好使用自定义对象Dimension
/Point
类或Pair
/AbstractMap.SimpleEntry
.数组是显示解决方案的最简单方法。
fhg3lkii2#
如果需要将这些值作为方法返回值的一部分
如果有合理的违约,我会这样做
或者,可以为空整数
否则
如果返回时不需要这些值
或