我坚持使用removeif java 8并寻找帮助
List<ACHTransaction> transactions = transactionDao.retrieveTransactions(getJobParameters();
来自事务的我想根据对象的属性
删除这些事务如果transaction.getFileHash不为null,那么我想删除该事务。如果transaction.getFileHash为null我想保留它。
所以我正在尝试删除
List<ACHTransaction> transactions = transactionDao.retrieveTransactions(getJobParameters().removeIf(t -> (Optional.ofNullable(t.getFileHash()).orElse(0).intValue() != 0));
但我收到错误。有人可以解释removeif如何使用对象属性?
答案 0 :(得分:4)
您可以检索列表,然后使用results = new Uri[]{Uri.fromFile(photoFile)};
mFilePathCallback.onReceiveValue(results);
删除元素:
removeIf
或者您可以在自己的答案中使用并使用流:
List<ACHTransaction> transactions =
transactionDao.retrieveTransactions(getJobParameters());
transactions.removeIf(t -> t.getFileHash() != null);
答案 1 :(得分:0)
目前我解决了这个问题
List<ACHTransaction> transactions =
achManagementDao
.retrieveTransactions(getJobParameters())
.stream()
.filter(t -> !(Optional.ofNullable(t.getFileHash()).orElse(0).intValue() == 0))
.collect(Collectors.toList());
但如果有更好的方式,请告诉我
答案 2 :(得分:0)
我在下面的代码片段中进行了测试,它可以根据需要运行。我希望这就是你要找的东西。
import java.util.ArrayList;
import java.util.List;
public class TestRemoveIf {
public static void main(String[] args) {
Transaction myTrans1 = new Transaction("myTrans1");
Transaction myTrans2 = new Transaction("myTrans2");
Transaction myTrans3 = new Transaction("myTrans3");
Transaction myTrans4 = new Transaction("myTrans4");
myTrans1.setFileHash("not Null");
myTrans3.setFileHash("not null");
List<Transaction> trList = new ArrayList();
trList.add(myTrans1);
trList.add(myTrans2);
trList.add(myTrans3);
trList.add(myTrans4);
trList.removeIf(t -> t.getFileHash()!=null);
System.out.println(trList);
}
}
public class Transaction {
String fileHash;
String name;
public String getFileHash() {
return fileHash;
}
public void setFileHash(String fileHash) {
this.fileHash = fileHash;
}
public Transaction(String name) {
super();
this.name = name;
}
@Override
public String toString() {
return "Transaction [fileHash=" + fileHash + ", name=" + name + "]";
}
}