Java 8 Lambda - 流过滤器更改值

Dav*_*vid 0 java lambda

我需要更改从过滤器获得的值

.stream()
.filter(profile -> profile.getValue().equals("test"))
.findFirst()
.map(profile -> profile.setProperty(true))
Run Code Online (Sandbox Code Playgroud)

我收到不兼容的类型:推断的类型不符合上限,谢谢

Lou*_*man 5

.map(profile -> profile.setProperty(true))
Run Code Online (Sandbox Code Playgroud)

是不正确的; 它如何不正确以及如何修复它取决于您。

map期望传递给它的 lambda 返回一个值,而不是修改现有值。您可以创建一个property设置为 true 的新值,也可以使用ifPresent而不是map就地更改现有值。