美文网首页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