我有以下代码:
val places: Array<String> = arrayOf("Singapore", "Japan", "Norway") // From an Array - Output will be elements of the array
val observable = Observable.fromArray(places)
var result = "Hello, "
observable.subscribe(
{ item ->
result += item
},
{ error ->
error.printStackTrace()
},
{
println("Done")
}
)
print(result)
}
我希望它能打印您好,新加坡|您好,日本|你好,挪威
但是我得到了:
Hello, [[Ljava.lang.String;@3830f1c0]
要打印数组中的元素,我缺少什么
答案 0 :(得分:3)
Observable.fromArray
与csv
有点不同。它不需要实际的数组,但是需要vararg参数。这是它的签名:
fromIterable
因此像这样调用它实际上将为您提供一个包含单个元素的public static <T> Observable<T> fromArray(T... items)
,并且其类型为Observable
:
Observable<Array<String>>
您要寻找的val places: Array<String> = arrayOf("Singapore", "Japan", "Norway")
val observable: Observable<Array<String>> = Observable.fromArray(places)
可以这样创建:
Observable<String>
或者,如果您已有阵列,请使用spread operator:
val observable: Observable<String> = Observable.fromArray("Singapore", "Japan", "Norway")