2017-12-29 31 views
1

この(非常に単純化された)コードはコンパイルに失敗します。理由は分かりません。戻り値のタイプはEntry?で、nullは私にとって有効な値のようです。Kotlin:null可能な戻り値を持つBiFunctionがコンパイルに失敗する

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

rxjavaのBiFunctionではなく、Java BiFunctionです。 –

+1

ああ、そうです。 –

答えて

4

BiFunctionクラスのapplyメソッドは、その戻り値(およびそのパラメータ)に@NonNullアノテーションを持ちます。どうやら、型引数としてnull可能な型を提供することでこれをオーバーライドすることはできません。

RxJava 2ストリームにnull要素を含めることはできません(here参照)。

関連する問題