我被困在使用removeif java 8并寻求帮助
List<ACHTransaction> transactions = transactionDao.retrieveTransactions(getJobParameters();
从事务中,我想基于对象的检查属性删除那些事务
如果transaction.getFileHash不为null,那么我想删除该事务。如果transaction.getFileHash为null,我想保留它。
所以我正在尝试removeif
List<ACHTransaction> transactions = transactionDao.retrieveTransactions(getJobParameters().removeIf(t -> (Optional.ofNullable(t.getFileHash()).orElse(0).intValue() != 0));
但是我遇到了错误。有人可以解释removeif如何使用对象属性吗?
最佳答案
您可以检索列表,然后使用removeIf
删除元素:
List<ACHTransaction> transactions =
transactionDao.retrieveTransactions(getJobParameters());
transactions.removeIf(t -> t.getFileHash() != null);
或者,您可以按照自己的答案进行操作并使用流:
List<ACHTransaction> transactions =
transactionDao.retrieveTransactions(getJobParameters()).stream()
.filter(t -> t.getFileHash() == null)
.collect(Collectors.toList());