扩展方法是指不改变类的源码的情况下为类增加自定义的方法
fun String.times(times: Int): String {
var builder = StringBuilder()
for (i in 0 until times) {
// 这里的this只得调用者本身
builder.append(this)
}
return builder.toString()
}
var String.name:String
set(v){}
get() = "123"
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
testValVar()
}
fun testValVar() {
// test即为上面提到的调用者
Log.d("thz","test".times(20))
var str = "tewt"
Log.d("thz",str.name)
}
}
打印结果为
.myapplication D/thz: testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest
.myapplication D/thz: 123
本文介绍了一种在不修改原始类代码的情况下,通过扩展方法为类添加自定义功能的技术。以Kotlin语言为例,展示了如何为String类添加times方法,实现字符串重复拼接,以及如何动态设置和获取String类的name属性。
599

被折叠的 条评论
为什么被折叠?



