Kotlin与java实现接口的区别

2020-12-24  本文已影响0人  GaoXiaoGao

当java接口中只有一个方法,可以省略接口对象,可以直接复写此方法, {}就表示此方法

toolbar.setOnMenuItemClickListener(object:Toolbar.OnMenuItemClickListener{
            override fun onMenuItemClick(item: MenuItem?): Boolean {

                when(item?.itemId){
                    R.id.setting->{
//                        Toast.makeText(toolbar.context,"设置",Toast.LENGTH_LONG).show();
                        toolbar.context.startActivity(Intent(toolbar.context,SettingActivity::class.java));
                    }
                }
                return true;
            }
        })

        //第二种写法
        //kotlin和java的区别
        //当java接口中只有一个方法,可以省略接口对象,直接复写此方法  {}表示此方法
        toolbar.setOnMenuItemClickListener {
            //有一个默认的it  代表onMenuItemClick的参数
            println("item=$it")
            when(it?.itemId){
                R.id.setting->{
                    Toast.makeText(toolbar.context,"设置",Toast.LENGTH_LONG).show();
                    toolbar.context.startActivity(Intent(toolbar.context,SettingActivity::class.java));
                }
            }
            true
        }


        //第三种写法
        //kotlin和java的区别
        //当java接口中只有一个方法,可以省略接口对象,直接复写此方法  {}表示此方法
        toolbar.setOnMenuItemClickListener {a->

            //a代表参数 item
            when(a?.itemId){
                R.id.setting->{
                    Toast.makeText(toolbar.context,"设置",Toast.LENGTH_LONG).show();
                    toolbar.context.startActivity(Intent(toolbar.context,SettingActivity::class.java));
                }
            }
            true
        }
    }
上一篇 下一篇

猜你喜欢

热点阅读