如何使用stream/ifPresent对java.util.Set中的每一项进行操作?
How to perform an operation on every item in java.util.Set using stream/ifPresent?
我有一个关于 streams/optionals 的问题。
我想对查询中获取的一组项目执行删除操作:
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);
我有一个关于 streams/optionals 的问题。
我想对查询中获取的一组项目执行删除操作:
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);