Учитывая произвольное поле в объекте 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
.
В ReactiveCocoa, похоже, я бы написал что-то вроде следующего (пожалуйста, извините за мой псевдо-Objective-C):
[RACObserve(self, currentState) subscribeNext:^(NSString *newState) {
NSLog(@"%@", newState);
}];
Как мне добиться аналогичной функциональности в RxJava? Я думаю, что мне может понадобиться обернуть все изменения в currentState в установщик, но мне не ясно, где я должен затем вызвать Observable.create и как передать изменения currentState в Observer.