单个接口的情况
比如java中有存在方法
public void delContact(long remoteId,ICommonStringCallback iCommonStringCallback){
Log.i("tag","del contact");
}
在kotlin中调用如下
ContactWrapper.getInstance().delContact(remoteId,object :ICommonStringCallback {});
实现接口

android studio 自动实现接口如下
ContactWrapper.getInstance().delContact(remoteId,object :ICommonStringCallback {
override fun onResult(i: Int, str: String?) {
TODO("Not yet implemented")
}
});
android studio alt+enter 转换未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个参数时自动提示选项正确的参数类型

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")
}
})
网友评论