![](https://img.haomeiwen.com/i7046750/ca73cae0a7f49deb.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
}
网友评论