如何使用 stream/ifPresent 对 java.util.Set 中的每个项目执行操作?



我有一个关于流/可选的问题。

我想对查询中获取的一组项目执行删除操作:

providerRepository.findByUserId(user.getId()).ifPresent(providerRepository::delete);

但是我的IDE说:

Incompatible types: Set<AuthenticationProvider> is not convertible to AuthenticationProvider

如何对集合中的每个项目执行操作?

迭代你的ifPresent

providerRepository.findByUserId(user.getId())
.ifPresent(set -> set.forEach(providerRepository::delete));

或者,在未找到任何内容的情况下获取一个空集,然后迭代该集:

providerRepository.findByUserId(user.getId())
.orElse(Collections.emptySet())
.forEach(providerRepository::delete);

最新更新