1

一部の Java コードを Kotlin に変換していますが、問題が発生しています。flattenAsObservable()

Java でのコードは次のようになります。

discogsInteractor.search(query)
    .map(RootSearchResponse::getSearchResults)
    .flattenAsObservable(searchResults -> searchResults)
    .take(12)

Kotlinでこれまでに持っているものは次のとおりです。

discogsInteractor.search(query)
    .map { RootSearchResponse::searchResults }
    .flattenAsObservable<SearchResult> { searchResults -> searchResults }
    .take(12)

2番目に下線が引かれsearchResults、次のエラーが表示されます。

Required: (Mutable)Iterable<SearchResult!>!
Found: KProperty1<RootSearchResponse, List<SearchResult>>!

交換できます

.map { RootSearchResponse::searchResults }

.map { searchResponse -> searchResponse.searchResults }

そしてそれはうまくいくでしょう。メソッド参照を正しく行うにはどうすればよいですか? または、この場合にできない理由は何ですか?

RootSearchResponse:

data class RootSearchResponse(val pagination: Pagination,
                              @SerializedName("results") val searchResults: List<SearchResult>)
4

1 に答える 1