kotlin

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

2019-03-30  本文已影响0人  STE北京老徐
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
}
上一篇 下一篇

猜你喜欢

热点阅读