簡體   English   中英

Rxjava 可觀察的不兼容類型

[英]Rxjava observable incompatible types

我正在嘗試使用 rxjava 返回一個單詞在文本文檔中出現的次數,我不斷收到錯誤消息

incompatible types: Single Long cannot be converted to Observable String 

我正在使用的功能是:

static public Observable<String> WordCount(Observable<String> lineEmitter, String startTerm){
    return lineEmitter.flatMap(str -> Observable.fromArray(str.split("\\s")))
            .filter(str -> str.replaceAll("[^a-zA-Z0-9]", "").contains(startTerm))
            .count();
}

我認為這與最后的計數有關,使其成為一個 long 但我不知道如何將其轉換為字符串

錯誤很明顯,您正在使用.count()返回Single<Long>而不是Observable<String>而您必須使用:

static public Single<Long> wordCount(Observable<String> lineEmitter, String startTerm){
              ^^^^^^^^^^^

或者,如果您想將計數設為 Long,您可以使用.blockingGet()

static public Long WordCount(Observable<String> lineEmitter, String startTerm){
    return lineEmitter.flatMap(str -> Observable.fromArray(str.split("\\s")))
            .filter(str -> str.replaceAll("[^a-zA-Z0-9]", "").contains(startTerm))
            .count()
            .blockingGet();
}

建議:請不要在方法的第一個字母中使用大寫

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM