这样的小例子,在Java中我有:
getPlaceName(mGoogleApiClient, arrivalId[0], name -> textArrival.setText(name));
然后我可以将地名设置为TextView:
package repository
import domain.Product
import org.springframework.data.repository.PagingAndSortingRepository
interface ProductCatalogRepository : PagingAndSortingRepository<Product, String> {}
请告诉我如何在Kotlin上设置这样的地名?
答案 0 :(得分:2)
这个东西叫做SAM(单一抽象方法),它全都是关于Java世界的。在当前版本的Kotlin中,如果您的接口在Kotlin中声明,则不能使用SAM。为此,他们使用高阶函数而不是接口。 但是,正如我所知,在Kotlin的1.3版本中我们可能会得到这种可能性(这些信息来自对JetBrains的Kotlin开发人员的采访,如果你熟悉俄语,你可以在这里看到这篇文章: https://habrahabr.ru/company/redmadrobot/blog/351516/)
顺便说一句,你可以在Kotin中使用SAM,但前提是你的接口是用Java声明的。对于您的示例,它应如下所示:
getPlaceName(mGoogleApiClient, arrivalId[0], PlaceNameCallback { textArrival.setText(it)})