【发布时间】:2018-03-14 01:52:01
【问题描述】:
假设我有一个Callbacks 接口,有两个方法onCurrentLocation 和onError:
public interface Callbacks {
void onCurrentLocation(ClientLocation location);
void onError();
}
以及在其构造函数中采用此接口的类,例如:
public MyLocationClient(Callbacks callbacks) {...}
现在,在 Kotlin 中,我是否可以通过这种方式实例化 MyLocationClient:
val myLocationClient = MyLocationClient(
{ location: ClientLocation ->
updateClientLocation(location)
},
{})
如果不是,为什么不呢?
我看到的行为是:当接口只有一个方法时,这个对象的构造编译得很好。但是,一旦我向Callbacks 添加更多方法,编译器就会抱怨
"类型不匹配。必需:回调!找到:(ClientLocation) -> 单位”
编辑:删除了对location 的空检查,因为它与问题无关。
【问题讨论】:
标签: android lambda interface kotlin