我坚持使用 removeif java 8 并寻求帮助
List<ACHTransaction> transactions = transactionDao.retrieveTransactions(getJobParameters();
我想从交易中删除那些基于检查对象属性的交易
如果 transaction.getFileHash 不为空,那么我想删除该交易。如果 transaction.getFileHash 为空,我想保留它。
所以我正在尝试 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());
关于java - 使用 removeif 过滤包含对象的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47597274/