[英]'Incompatible type' error in emitting a String array in an Observable in RxJava 2
在這里問一個非常基本的RxJava問題,因為我在其他任何地方都找不到。
我在RxJava 2中有這個Observable-
Observable<String> database = Observable.just("1", "2", "3");
工作正常。 沒問題。
但是當我嘗試傳遞這樣的數組時-
arr = new String[]{"1", "2", "3"};
Observable<String> database = Observable.just(arr);
對於不兼容的類型,它將引發錯誤。
第二個聲明與第一個聲明不一樣嗎? 如果沒有,為什么?
我需要一種方法來發出預定義的數組,並且在Observer的onNext上,我應該獲取數組的各個項目。 如何實現呢?
第二個聲明與第一個聲明不一樣嗎? 如果沒有,為什么?
否。Java的類型系統區分了普通類型和這些類型的數組:
String s = new String("whatever")
String z = new String[0]; // <--------- compile error
String[]
不是單個String
類型。
該方法just
被定義如下:
Observable<T> just(T item);
如果我們用T = String
替代,您將獲得Observable<String> just(String item)
的簽名。
如果我們用T = String[]
代替,那會得到什么呢? Observable<String[]> just(String[] item)
。
我需要一種方法來發出預定義的數組,並且在Observer的onNext上,我應該獲取數組的各個項目。 如何實現呢?
使用fromArray
因為它被定義為Observable<T> fromArray(T[] array)
:
Observable<String> database = Observable.fromArray(arr);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.