Android之Kotlin:Kotlin匿名内部类对象引用当前
2019-03-30 本文已影响0人
STE北京老徐

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
}