gpt4 book ai didi

observable - 理解 RxJava 中的 Observable.fromArray

转载 作者:行者123 更新时间:2023-12-05 00:46:48 28 4
gpt4 key购买 nike

我正在尝试学习不同的 RxJava 运算符。我对 Observable.just 和 Observable.fromArray() 以及它们如何发出 Observables 有点困惑。

单个整数工作正常,但为了更好地理解差异,我尝试使用数组。我有下面的代码,它适用于单个整数,但是当我传递数组时,它说一些编译错误,我不明白如何解决。

单个整数的代码

Observable.fromArray(10,20,30).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({
Util.d("Emit Integers : "+ it)
})

输出是:

Emit Integers : 10
Emit Integers : 20
Emit Integers : 30

现在要从某个列表中发出整数,我尝试以下代码:

var numbers = arrayOf<Int>(1, 2, 3)
Observable.fromArray(numbers).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({
Util.d("Emit Integers: "+ it)
})

我得到的输出是

Emit Integers: [Ljava.lang.Integer;@8a69c02

我期望的是将数组的每一项返回为 Observable。 fromArray() 不可能吗?如果没有,Observable.fromArray()有什么用

最佳答案

根据他们的doc fromArray()仅支持引用数组。但是在 kotlin arrayOf<Int>()返回 Array目的。如果我们放一个 kotlin Array fromArray() 中的对象方法,它创建 Array 的数组对象(在 java 中,它将是 Array[] )。所以订阅后Observable返回 Array 的对象.但是,如果我们将项目放入 fromArray()方法,它将创建 Int 的数组.所以订阅后它会返回 Int .如果你想迭代任何可变可迭代,那么你可以试试Observable.fromIterable() .

关于observable - 理解 RxJava 中的 Observable.fromArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59496282/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com