- 与java不同的是,原先
MainActivity.this
这种写法在kotlin中会报错。如下
正确的写法有许多,直接就写this
也可以识别到,如下:
Toast.makeText(MainActivity@this,"xxx1", Toast.LENGTH_SHORT).show()
Toast.makeText(this@MainActivity,"xxx2", Toast.LENGTH_SHORT).show()
var view: View = findViewById(R.id.tv)
view.setOnClickListener(View.OnClickListener {
Toast.makeText(this,"xxx3", Toast.LENGTH_SHORT).show()
})
与之前java中this的写法相比,除了MainActivity.this
不支持外,其他kotlin还是支持的。例如this
,this.name
。
关于kotlin中this关键字的其他用法,示例如下,看运行结果就能明白:
fun main() {
TestThis().test()
}
class TestThis {
var name: String = "xxx"
fun test() {
println(this.name)
fetchClassInfo(this)
fetchClassInfo(TestThis@this)
fetchClassInfo(this@TestThis)
println("apkname".add0())
}
fun fetchClassInfo(info:TestThis){
println(info.javaClass.simpleName)
}
fun String.add0():String{
return this + "0"
}
}
运行结果: