Я создал пример, чтобы увидеть разницу между Single и Observable. приведенный ниже пример не работает. Также я не вижу никакой разницы между
Наблюдаемые и единичные.
Как работают приведенные ниже примеры?
Код:
public static void main(String[] args) {
Single<List<List<Person>>> observables = Single.just(Main.getPersons());
observables
.flatMap(ll->Observable.fromIterable(ll)
.concatMap(p->Observable.fromIterable(p))
.map(s->s.getAge()))
.observeOn(Schedulers.io())
.subscribe(new SingleObserver() {
@Override
public void onError(Throwable arg0) {
// TODO Auto-generated method stub
}
@Override
public void onSubscribe(Disposable arg0) {
// TODO Auto-generated method stub
System.out.println("onSubscribe: " + arg0);
}
@Override
public void onSuccess(Object arg0) {
// TODO Auto-generated method stub
System.out.println("onSuccess: " + arg0);
}
});
private static <T> Observable<T> toObservable(T s) {
return Observable.just(s);
}
private static List<List<Person>> getPersons() {
return Arrays.asList(
Arrays.asList(new Person("Sanna1", 59, "EGY"), new Person(null, 59, "EGY"), new Person("Sanna3", 59, null)),
Arrays.asList(new Person("Mohamed1", 59, "EGY"), new Person(null, 59, "EGY")),
Arrays.asList(new Person("Ahmed1", 44, "QTR"), new Person("Ahmed2", 44, "QTR"), new Person(null, null, "QTR")),
Arrays.asList(new Person("Fatma", 29, "KSA")),
Arrays.asList(new Person("Lobna", 24, "EGY")));
}
}