给定Java对象上的任意字段,我想创建一个Observable,它将监视该字段,并在每次字段值更改时将新结果推送到Observer。 ReactiveCocoa有一个称为RACObserve的宏,它似乎正是在这样做。
我想知道如何使用RxJava实现类似的功能。
例如,假设我有以下简单的类:
public class Foo {
enum State {
Idle,
Ready,
Error
}
private State currentState = State.Idle;
//methods that can change currentState
}
我想创建一个
Observable<State>
,每次更改currentState
的值时,它将新状态推送到Observer。在ReactiveCocoa中,看起来我将编写如下内容(请原谅我的伪Objective-C):
[RACObserve(self, currentState) subscribeNext:^(NSString *newState) {
NSLog(@"%@", newState);
}];
我如何在RxJava中实现类似的功能?我在想可能需要将对currentState的所有更改包装在setter中,但是我不清楚我应该在哪里调用Observable.create以及如何将currentState的更改提供给Observer。
最佳答案
实际上,ReactiveCocoa与ReactiveUI(http://www.reactiveui.net)更为相似,而不仅仅是纯Rx。在ReactiveUI中,您可以使用this.WhenAnyValue(x => x.PropName)来做您想要的事情。
关于system.reactive - 相当于ReactiveCocoa的RACObserve的RxJava(或Rx.NET),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21201304/