如何在 Kotlin android 的扩展函数中访问具有相同名称的 class 成员
How to access class members with same name in extension function in Kotlin android
我是 android 的 kotlin 新手。我想访问 class 在扩展函数中具有相同名称的成员。
例如:
var visibility = null //class level variable
//EXTENSION FUNCTION
fun ProgressBar.changeVisibleState(flag: Boolean) {
if (flag)
visibility = View.VISIBLE
else
visibility = View.INVISIBLE
}
如何在 changeVisibleState
方法中访问 visibility
。
您可以使用 this
运算符。
class Hello {
var visibility: Int = 0 //class level variable
//EXTENSION FUNCTION
fun ProgressBar.changeVisibleState(flag: Boolean) {
if (flag)
this@Hello.visibility = View.VISIBLE
else
this@Hello.visibility = View.INVISIBLE
}
}
使用 qualified this this@Hello
您可以访问 Hello
的 属性 而不是 ProgressBar
的。
class Bye {
var visibility: Int = 0 //class level variable
}
class Hello {
var visibility: Int = 0 //class level variable
fun Bye.changeVisibleState(flag: Boolean) {
//access Bye's prop
visibility = if (flag) 1 else 2
//access Hello's prop
this@Hello.visibility = 12
}
}
我是 android 的 kotlin 新手。我想访问 class 在扩展函数中具有相同名称的成员。 例如:
var visibility = null //class level variable
//EXTENSION FUNCTION
fun ProgressBar.changeVisibleState(flag: Boolean) {
if (flag)
visibility = View.VISIBLE
else
visibility = View.INVISIBLE
}
如何在 changeVisibleState
方法中访问 visibility
。
您可以使用 this
运算符。
class Hello {
var visibility: Int = 0 //class level variable
//EXTENSION FUNCTION
fun ProgressBar.changeVisibleState(flag: Boolean) {
if (flag)
this@Hello.visibility = View.VISIBLE
else
this@Hello.visibility = View.INVISIBLE
}
}
使用 qualified this this@Hello
您可以访问 Hello
的 属性 而不是 ProgressBar
的。
class Bye {
var visibility: Int = 0 //class level variable
}
class Hello {
var visibility: Int = 0 //class level variable
fun Bye.changeVisibleState(flag: Boolean) {
//access Bye's prop
visibility = if (flag) 1 else 2
//access Hello's prop
this@Hello.visibility = 12
}
}