美文网首页kotlin
Android之Kotlin:Kotlin匿名内部类对象引用当前

Android之Kotlin:Kotlin匿名内部类对象引用当前

作者: STE北京老徐 | 来源:发表于2019-03-30 20:43 被阅读0次
    image.png

    JAVA中匿名接口使用当前对象,直接调用MainActivity.this,Kotlin既然是一个全新的完美的语言,这么调用是不行的

    一、Kotlin中匿名内部类,引用Activity的this用法为 this@MainActivity (对应自己的Activity)

    class MainActivity : AppCompatActivity() {
     
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
     
            //调用该方法
            var name = getAnimalName(object : BaseAnimal() {
                override fun getVoice(): String {
                    ToastUtil.show(this@MainActivity, "匿名内部类中调用Activity当前对象")
                    return "我是徐哥"
                }
            })
            
            LogUtils.d(name)
     
        }
     
        //设置方法的参数类型为抽象类
        fun getAnimalName(animal: BaseAnimal) {
            animal.getVoice()
        }
    }
    

    二、对应BaseAnimal的类

    abstract class BaseAnimal{
        abstract fun getVoice():String
    }
    

    相关文章

      网友评论

        本文标题:Android之Kotlin:Kotlin匿名内部类对象引用当前

        本文链接:https://www.haomeiwen.com/subject/xdwsbqtx.html