RxJava-仅与来自

RxJava-仅与来自,java,rx-java,Java,Rx Java,当使用Observable时,我得到了相同的输出。在以下情况下,仅使用vsObservable.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

当使用
Observable时,我得到了相同的输出。在以下情况下,仅使用
vs
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());
            }
        });

    }

我假设这是明显的区别,对吗?

当你传递一个
Iterable
(例如
列表
)时,当你观察每个人的行为时,区别应该更清楚:

可观察。仅(someList)
将给你1次发射-a
列表

可观察。从(someList)
将为您提供N个排放-列表中的每个项目

只将多个值传递给
是一种方便的功能;以下功能相同:

Observable.just(1, 2, 3);
Observable.from(1, 2, 3);

just()
和from()之间的区别:

尽管
just()
from()
似乎在做相同的工作,但排放量不同

just()<代码>可观察。仅(新整数[]{1,2,3})
通过观察者回调发出一个发射,作为
onNext(整数[]{integers)


fromArray()
–产生N个辐射<代码>可观察。fromArray(新整数[]{1,2,3})
通过Observer callback作为
onNext(Integer Integer)

发出三次发射,主要与数据结构(数组和iterable)和期货一起工作,因此获得的
可观察的
将从这些数据结构或期货发出单个项目

只是
将所有内容都视为项,而不管它是数组项还是整数项。关于
just
的混淆是由于有一些
just
变体可以接受多达10个参数

因此,事实上,您可能会解释所有这些
just
变量,就像它们分别发出的一样,“just”一项,或“just”两项,或“just”三项等等…

inRxJavajust()运算符获取参数列表并将这些项转换为可观察项。它需要一到十个参数(但官方文件说是一到九个,可能是特定语言)


与just不同,From()使用Iterable从一组项中创建一个可观察项,这意味着每个项一次发出一个。

我们可以在just()中最多传递10个参数,而fromArray具有列表类型

而在内部调用fromArray()

在下面的RxJava代码中只检查4个参数

 public static <T> Observable<T> just(T item1, T item2, T item3, T item4) {
        ObjectHelper.requireNonNull(item1, "The first item is null");
        ObjectHelper.requireNonNull(item2, "The second item is null");
        ObjectHelper.requireNonNull(item3, "The third item is null");
        ObjectHelper.requireNonNull(item4, "The fourth item is null");

        return fromArray(item1, item2, item3, item4);
    }
publicstaticobservable(T项1、T项2、T项3、T项4){
requirennull(item1,“第一项为空”);
requirennull(item2,“第二项为空”);
requirennull(item3,“第三项为空”);
ObjectHelper.requirennull(item4,“第四项为空”);
从数组返回(项1、项2、项3、项4);
}
两者都返回相同的可观察对象

在2.1.0版中,没有from()。它替换为fromIterable()和其他一些,但答案是正确的。谢谢。这里是可观察的。只是(1,2,3,4,5,6,7,8,9,10)。subscribeOn(Schedulers.io())只接受10个参数并给出10个发射。为什么没有人关心这个案子?
 public static <T> Observable<T> just(T item1, T item2, T item3, T item4) {
        ObjectHelper.requireNonNull(item1, "The first item is null");
        ObjectHelper.requireNonNull(item2, "The second item is null");
        ObjectHelper.requireNonNull(item3, "The third item is null");
        ObjectHelper.requireNonNull(item4, "The fourth item is null");

        return fromArray(item1, item2, item3, item4);
    }