Java 可观察,访问列表中的输入

Java 可观察,访问列表中的输入,java,observable,rx-java,Java,Observable,Rx Java,rxjava的新特性 我有这样一个代码,其中有一个事件列表,我需要执行一个操作,然后将响应与调用的事件匹配 我在第行收到一个编译错误: .subscribe(值->匹配响应(事件、值)) 当然,这是有意义的,事件目前还不知道,是否有方法让我访问传递给performOperation函数的事件,以便执行匹配响应 public void perforomObservableOperations(List<Event> events) { Observable.from(events)

rxjava的新特性

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

我在第行收到一个编译错误:
.subscribe(值->匹配响应(事件、值))

当然,这是有意义的,事件目前还不知道,是否有方法让我访问传递给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();
    }

public void performoObservableOperations(列出事件){
从(事件)中观察到的
.flatMap(此::性能操作,10)
.重试(10)
.toBlocking()
.subscribe(值->匹配响应(事件、值));
}
私有void matchResponse(事件,整数值){
eboxEvent.setValue(值);
}
私人可观察绩效操作(事件){
如果(事件==null){
return-Observable.empty();
}
返回xyz.getValue(event.toObservable();
}

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

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

class Store {
    Event event;
    Integer value;

    Store(Event event, Integer value) {
        this.event = event;
        this.value = value;
    }
}
您也可以使用
Pair
Map.Entry
或类似的方法。然后您必须以适当的方式更改
性能操作
匹配响应

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));
}
private void matchResponse(存储){
}
私人可观察绩效操作(事件){
如果(事件==null){
return-Observable.empty();
}
返回xyz.getValue(event.toObservable().map((value)->新存储(event,value));
}

从本质上讲,这与我的做法类似。因为我是rxjava新手,所以我正在尝试查看是否可以在
subscribe()
中获得进入
performOperation()
的事件。