gpt4 book ai didi

Java 8 流并从调用 boolean 方法设置属性

转载 作者:行者123 更新时间:2023-12-01 13:45:28 26 4
gpt4 key购买 nike

请您帮我解决我在尝试通过数组列表流式传输并基于返回 boolean 值的方法调用 setter 时遇到的这个问题。

写成 for 循环,它看起来像这样:-

for (final PersonDto person : personList) {
person.setUserCanEdit(userHasWriteRole(person));
}

private Boolean userHasWriteRole(final PersonDto person) {
return getUserRoles().contains(getReadRole());
}

我尝试了一些没有成功的变体,如下所示
final List<PersonDto> results = personList.stream().filter(a -> a.setUserCanEdit(this::userHasWriteRole)).collect(Collectors.toList());


...但它提示
此表达式的目标类型必须是函数式接口(interface)

最佳答案

我想我会去:

personList.stream()
.filter(p -> userHasWriteRole(p))
.forEach(p -> p.setUserCanEdit(true));

我认为这使意图清晰,

关于Java 8 流并从调用 boolean 方法设置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62260071/

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