单个接口的情况
比如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")
}
})
最后
如果想要成为架构师或想突破20~30K薪资范畴,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。此外,良好的职业规划也很重要,学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。
如果你没有方向,这里给大家分享一套由阿里高级架构师编写的《Android八大模块进阶笔记》,帮大家将杂乱、零散、碎片化的知识进行体系化的整理,让大家系统而高效地掌握Android开发的各个知识点。
相对于我们平时看的碎片化内容,这份笔记的知识点更系统化,更容易理解和记忆,是严格按照知识体系编排的。
欢迎大家一键三连支持,若需要文中资料,直接扫描文末CSDN官方认证微信卡片免费领取↓↓↓(文末还有ChatGPT机器人小福利哦,大家千万不要错过)
PS:群里还设有ChatGPT机器人,可以解答大家在工作上或者是技术上的问题