Kotlin中写 调用接口参数,转lambda表达式的步骤

2024-03-13  本文已影响0人  牵手生活

单个接口的情况

比如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") };

或如下

image.png
                        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);
image.png

第2个参数时自动提示选项正确的参数类型

第2个参数时自动提示选项正确的参数类型
                        ContactWrapper.getInstance().delContactMore(remoteId,object :ICommonStringCallback(),
                            object : ICommonStringCallback {
                            
                            })

用as 的alt+enter自动补全

自动补全实现接口第二个接口参数 再补全实现接口第一个接口参数 image.png

得到的代码如下

image.png
                        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")
                            }

                            })
上一篇 下一篇

猜你喜欢

热点阅读