gpt4 book ai didi

java - 可观察,从列表中访问输入

转载 作者:行者123 更新时间:2023-11-30 05:30:17 26 4
gpt4 key购买 nike

rx java 新手。

我有这样的代码,其中有一个事件列表,我需要执行一个操作,然后将响应与调用的事件相匹配。

我在线收到编译错误:.subscribe(value -> matchResponse(event, value));

当然这是有道理的,此时事件未知,有没有办法让我访问传递给performOperation函数的事件,以便我可以执行我的匹配响应。

public void perforomObservableOperations(List<Event> events) {
Observable.from(events)
.flatMap(this::performOperation, 10)
.retry(10)
.toBlocking()
.subscribe(value -> matchResponse(event, value));
}

private void matchResponse(Event event, Integer value) {
eboxEvent.setValue(value);
}


private Observable<Integer> performOperation(Event event) {
if (event == null) {
return Observable.empty();
}
return xyz.getValue(event).toObservable();
}

如果有更好的方法可以做到这一点,我很想知道。本质上是使用 rxjava 来帮助我重试,xyz 是一个 hystrix 对象,使我能够打开断路器。

最佳答案

您可以创建一个简单的类来存储事件:

class Store {
Event event;
Integer value;

Store(Event event, Integer value) {
this.event = event;
this.value = value;
}
}

您还可以使用PairMap.Entry或类似的东西来代替。然后你必须以适当的方式更改 performOperationmatchResponse:

private void matchResponse(Store store) {

}

private Observable<Store> performOperation(Event event) {
if (event == null) {
return Observable.empty();
}
return xyz.getValue(event).toObservable().map((value) -> new Store(event, value));
}

关于java - 可观察,从列表中访问输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57700463/

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