【发布时间】:2017-05-29 15:15:43
【问题描述】:
我正在将一些 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)
它强调了第二个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>)
【问题讨论】: