Kotlin:具有可空返回值的BiFunction无法编译

时间:2017-12-29 16:42:31

标签: kotlin rx-java rx-android

这个(大大简化的)代码无法为我编译。不知道为什么。返回类型为Entry?null对我来说似乎是一个有效值。

val foo = BiFunction<Int, List<Entry>, Entry?> { foo:Int, bar:List<Entry> ->
    null
}

错误讯息为Null can not be a value of a non-null type Entry

谁能告诉我我失踪了什么?

我正在使用:

ext.kotlin_version = '1.2.10'
compile "io.reactivex.rxjava2:rxjava:2.1.8"
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'

我欢迎任何建议。新年快乐!

1 个答案:

答案 0 :(得分:7)

BiFunction类中的apply方法对其返回值(及其参数)具有@NonNull注释。显然你不能通过提供一个可空类型作为类型参数来覆盖它。

您可能不应该:RxJava 2流中不能包含null个元素(请参阅here)。