单个接口的情况
比如java中有存在方法
public void delContact(long remoteId,ICommonStringCallback iCommonStringCallback){
Log.i("tag","del contact");
}
在kotlin中调用如下
ContactWrapper.getInstance().delContact(remoteId,object :ICommonStringCallback {});
实现接口
atl+enter实现接口
android studio 自动实现接口如下
ContactWrapper.getInstance().delContact(remoteId,object :ICommonStringCallback {
override fun onResult(i: Int, str: String?) {
TODO("Not yet implemented")
}
});
android studio alt+enter 转换未lambda表达式
as转换未lambda表达式
转换后的代码如下
ContactWrapper.getInstance().delContact(remoteId ) {
i, str -> TODO("Not yet implemented")
};
或如下
ContactWrapper.getInstance().delContact(
remoteId
) { i, str ->
if (i == 0) {
Log.i(TAG, "${remoteId}deleted success")
}else{
Log.e(TAG,"${remoteId} is not your contact")
}
}
函数存在多个接口的情况
java 中delContactMore函数多个接口参数
public void delContactMore(long remoteId, ICommonStringCallback iCommonStringCallback, ICommonStringCallback iCommonStringCallback2){
Log.i("tag","del contact more ");
}
kotlin中写
ContactWrapper.getInstance().delContactMore(remoteId,object :ICommonStringCallback,object:ICommonStringCallback);
第2个参数时自动提示选项正确的参数类型
第2个参数时自动提示选项正确的参数类型
ContactWrapper.getInstance().delContactMore(remoteId,object :ICommonStringCallback(),
object : ICommonStringCallback {
})
用as 的alt+enter自动补全
自动补全实现接口第二个接口参数
再补全实现接口第一个接口参数
得到的代码如下
ContactWrapper.getInstance().delContactMore(remoteId,object :ICommonStringCallback{
override fun onResult(i: Int, str: String?) {
TODO("Not yet implemented")
}
},
object : ICommonStringCallback {
override fun onResult(i: Int, str: String?) {
TODO("Not yet implemented")
}
})
👀关注公众号:Android老皮!!!欢迎大家来找我探讨交流👀