我将某些Java代码转换为Kotlin,但我不太了解如何实例化Kotlin代码中定义的接口。例如,我有一个接口(用Java代码定义):
public interface MyInterface {
void onLocationMeasured(Location location);
}
然后在我的Kotlin代码中进一步实例化此接口:
val myObj = new MyInterface { Log.d("...", "...") }
而且效果很好。但是,当我将MyInterface转换为Kotlin时:
interface MyInterface {
fun onLocationMeasured(location: Location)
}
我收到一条错误消息:Interface MyListener does not have constructors
当我尝试实例化它时-尽管在我看来,除了语法外,没有任何改变。我是否误解了Kotlin中的接口如何工作?
Location -> Unit
如果可能的话,最好使用函数类型(例如)而不是单方法接口-正确吗?