RXJava Range给我类型推断错误失败

时间:2019-05-30 19:23:56

标签: android kotlin rx-java rx-java2

在阅读有关RXJAVA的书时,出现此错误:

  

类型推断失败。预期类型不匹配:推断的类型为   可观察!但可以观察到

通过以下简单代码段:

@Test
    fun deferable() {
       val source= Observable.range(1, 5)
                source.subscribe { s -> System.out.println("RECEIVED: $s "}
    }

我不明白,我为什么在运行测试时会收到此奇怪的消息。在日常活动中,我会管理此类错误,更改变量/属性(表达式类型)的返回值 为val source :Observable<Int>

但不起作用,我也尝试做map{it.toString()} 但是没有成功,我如何才能使“测试”通过?我知道这不是一个真正的测试,我仅用于学习RXJAVA,所以没有断言,我期望的是看到以下输出:

RECEIVED:5
RECEIVED:6
RECEIVED:7
RECEIVED:8
RECEIVED:9
RECEIVED:10
RECEIVED:11
RECEIVED:12
RECEIVED:13
RECEIVED:14

1 个答案:

答案 0 :(得分:1)

  

类型推断失败。预期类型不匹配:推断的类型是可观察的!但可以观察到

如果您遇到此类编译器错误,则意味着您正尝试传递可为空的值,而不是nonNull。您看到尖叫声:Observable!的标志吗?就是这个
PS。测试在我的计算机上是绿色的。输出是下一个:

RECEIVED: 1 
RECEIVED: 2 
RECEIVED: 3 
RECEIVED: 4 
RECEIVED: 5