Я получаю такой же вывод при использовании Observable.just
против Observable.from
в следующем случае:
public void myfunc() {
//swap out just for from here and i get the same results,why ?
Observable.just(1,2,3).subscribe(new Subscriber<Integer>() {
@Override
public void onCompleted() {
Log.d("","all done. oncompleted called");
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Integer integer) {
Log.d("","here is my integer:"+integer.intValue());
}
});
}
Я думал, что just
предполагать, чтобы испустить один элемент, а from
- в какой-то список. Какая разница? Я также отметил, что как just
и from
принимает лишь ограниченное количество аргументов. поэтому Observable.just(1,2,3,4,5,6,7,8,-1,-2)
в порядке, но Observable.just(1,2,3,4,5,6,7,8,-1,-2,-3)
не удается. То же самое касается, я должен обернуть его в список или массив сортов. Мне просто любопытно, почему они не могут определить неограниченные аргументы.
ОБНОВЛЕНИЕ: я экспериментировал и видел, что just
не принимает структуру массива, он just
принимает аргументы. from
берет коллекцию. поэтому следующее работает from
но не just
:
public Observable myfunc() {
Integer[] myints = {1,2,3,4,5,6,7,8,-1,-2,9,10,11,12,13,14,15};
return Observable.just(myints).flatMap(new Func1<Integer, Observable<Boolean>>() {
@Override
public Observable<Boolean> call(final Integer integer) {
return Observable.create(new Observable.OnSubscribe<Boolean>() {
@Override
public void call(Subscriber<? super Boolean> subscriber) {
if(integer.intValue()>2){
subscriber.onNext(integer.intValue()>2);
}
}
});
}
});
}
Я предполагаю, что это будет явной разницей, верно?