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

Geo*_*rid 3 kotlin rx-java rx-android

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

val foo = BiFunction<Int, List<Entry>, Entry?> { foo:Int, bar:List<Entry> ->
    null
}
Run Code Online (Sandbox Code Playgroud)

错误消息是 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'
Run Code Online (Sandbox Code Playgroud)

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

zsm*_*b13 8

类中的apply方法在其返回值(及其参数)上BiFunction具有@NonNull注释。显然,您不能通过提供可为null的类型作为type参数来覆盖它。

您可能也不应该:RxJava 2流中不能包含null元素(请参见此处)。