Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 如何将通量元素转换为关键贴图_Kotlin_Reactor_Rx Kotlin - Fatal编程技术网

Kotlin 如何将通量元素转换为关键贴图

Kotlin 如何将通量元素转换为关键贴图,kotlin,reactor,rx-kotlin,Kotlin,Reactor,Rx Kotlin,我有一个contactId对象,我将其转换为flux,然后分别使用每个Id查询联系人详细信息,然后使用collectList方法将其转换为Mono,并将其映射到另一个对象,我们将其称为DomainContactDetails,如下所示 Flux.just(identifier.regContactId、identifier.billingContactId、identifier.adminContactId、identifier.techContactId) .flatMap{resellerG

我有一个contactId对象,我将其转换为flux,然后分别使用每个Id查询联系人详细信息,然后使用collectList方法将其转换为Mono,并将其映射到另一个对象,我们将其称为DomainContactDetails,如下所示

Flux.just(identifier.regContactId、identifier.billingContactId、identifier.adminContactId、identifier.techContactId)
.flatMap{resellerGetContact(it)}
.LIST()
.map{DomainContactDetails.fromList(it)}
.toFuture()
是否有任何方法可以将通量元素收集到键映射而不是列表中。现在,我使用列表索引来标识哪些数据属于属性

数据类域ContactDetails(
val注册人联系人:ContactInfo,
val billingContact:ContactInfo,
val adminContact:ContactInfo,
val techContact:ContactInfo
) {
伴星{
fromList(contacts:List)=DomainContactDetails(
注册联系人=联系人[0],
billingContact=触点[1],
adminContact=联系人[2],
techContact=联系人[3]
)
}
}
我希望它是关键地图,这样可能会更好一些

fun fromKeyMap(联系人:Map)=域联系人详细信息(
注册联系人=联系人[“注册”],
billingContact=触点[“bil”],
adminContact=联系人[“adm”],
techContact=联系人[“tec”]
)

我对您的解决方案一点也不确定,但因为您询问的是收集地图的问题,所以这里有一个答案。请参阅
Flux.collect()
运算符:

/**
 * Collect all elements emitted by this {@link Flux} into a container,
 * by applying a Java 8 Stream API {@link Collector}
 * The collected result will be emitted when this sequence completes.
 *
 * <p>
 * <img class="marble" src="doc-files/marbles/collectWithCollector.svg" alt="">
 *
 * @param collector the {@link Collector}
 * @param <A> The mutable accumulation type
 * @param <R> the container type
 *
 * <p><strong>Discard Support:</strong> This operator discards the intermediate container (see {@link Collector#supplier()} upon
 * cancellation, error or exception while applying the {@link Collector#finisher()}. Either the container type
 * is a {@link Collection} (in which case individual elements are discarded) or not (in which case the entire
 * container is discarded). In case the accumulator {@link BiConsumer} of the collector fails to accumulate
 * an element into the intermediate container, the container is discarded as above and the triggering element
 * is also discarded.
 *
 * @return a {@link Mono} of the collected container on complete
 *
 */
public final <R, A> Mono<R> collect(Collector<? super T, A, ? extends R> collector) {
/**
*将此{@link Flux}发出的所有元素收集到一个容器中,
*通过应用Java8流API{@link Collector}
*收集的结果将在该序列完成时发出。
*
*
* 
*
*@param收集器{@link收集器}
*@param可变累积类型
*@param容器类型
*
*放弃支持:此操作符放弃中间容器(请参见{@link Collector#supplier()})
*应用{@link Collector#finisher()}时发生取消、错误或异常。容器类型
*是一个{@link Collection}(在这种情况下,单个元素被丢弃)还是一个非{@link Collection}(在这种情况下,整个
*如果收集器的累加器{@link BiConsumer}无法累加
*将一个元素放入中间容器,容器如上所述被丢弃,触发元素
*也被丢弃。
*
*@在完成时返回收集的容器的{@link Mono}
*
*/
公共最终单声道收集(收集器