gpt4 book ai didi

java - 如何使用 Single.flatMap 合并两个值?

转载 作者:行者123 更新时间:2023-12-01 19:30:16 25 4
gpt4 key购买 nike

我有这个代码:

private Single<Invoice> getInvoiceWithItems() {
return getInvoice().flatMap(invoice -> getItems(invoice)); // <--- Here, I need invoice and items
}

private Single<Invoice> getInvoice() { ... }

private Single<List<Item>> getItems(Invoice invoice) { ... }

我想做一些类似invoice.setItems(items)的事情。我尝试向 flatMap 传递一个额外的函数参数,但它不接受它。

我该怎么做?

我找到了这个解决方案,但我不确定它是否是最好的:

private Single<Invoice> getInvoiceWithItems() {
return Single.zip(getInvoice(), getInvoice().flatMap(invoice -> getInvoiceItems(invoice)), (invoice, items) -> {
invoice.setItems(items);
return invoice;
});
}

最佳答案

private Single<Invoice> getInvoiceWithItems() {
return getInvoice().flatMap(invoice -> getItems(invoice).map(items -> {
invoice.setItems(items);
return invoice;
}));
}

关于java - 如何使用 Single.flatMap 合并两个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59965902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com