2017-12-29 42 views
1

이 코드는 매우 간단하게 컴파일되지 않습니다. 이유를 모르겠다. 반환 유형은 Entry?이고 null은 유효한 값입니다.Kotlin : nullable 반환 값이있는 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 참조).