Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RxJava/RxKotlin根据子类型拆分流_Kotlin_Rx Java_Rx Kotlin_Rx Kotlin2_Rx Javafx - Fatal编程技术网

RxJava/RxKotlin根据子类型拆分流

RxJava/RxKotlin根据子类型拆分流,kotlin,rx-java,rx-kotlin,rx-kotlin2,rx-javafx,Kotlin,Rx Java,Rx Kotlin,Rx Kotlin2,Rx Javafx,我有一个响应消息流,可以是不同的子类型。我想将流分割成流,这样我就可以在自己的流中处理每种类型 我第一次尝试的结果是,我看不出有什么效果 file.readLines() .toObservable() .map { mapper.readValue(it, ResponseMessage::class.java) } .groupBy { when(it) { is MarketChangeMessage -> it

我有一个
响应消息流
,可以是不同的子类型。我想将流分割成流,这样我就可以在自己的流中处理每种类型

我第一次尝试的结果是,我看不出有什么效果

file.readLines()
        .toObservable()
        .map { mapper.readValue(it, ResponseMessage::class.java) }
        .groupBy { when(it) {
            is MarketChangeMessage -> it::class
            else -> it::class
        }}
        .map { it.????? } //How can possible this work?
我现在的问题是:
将流划分为一个特定子类型的流的惯用方法是什么?

您可以使用类型的
操作符:

类型( ) — 仅从源可观察到的属于特定类的项发出

例如:

val messages = file.readLines()
    .toObservable()
    .map { mapper.readValue(it, ResponseMessage::class.java) }
    .share() // <-- or other multicasting operator

messages
    .ofType(MarketChangeMessage::class)
    .subscribe()

messages
    .ofType(Other::class)
    .subscribe()
val messages=file.readLines()
.TooObservable()文件
.map{mapper.readValue(it,ResponseMessage::class.java)}

.share()//您可以使用类型
运算符的

类型( ) — 仅从源可观察到的属于特定类的项发出

例如:

val messages = file.readLines()
    .toObservable()
    .map { mapper.readValue(it, ResponseMessage::class.java) }
    .share() // <-- or other multicasting operator

messages
    .ofType(MarketChangeMessage::class)
    .subscribe()

messages
    .ofType(Other::class)
    .subscribe()
val messages=file.readLines()
.TooObservable()文件
.map{mapper.readValue(it,ResponseMessage::class.java)}
.share()//