03-类成员引用
10.1.2 类成员引用
反射常见的一个使用场景就是获取枚举类的成员对象,如类的成员属性和方法等。在Kotlin的引用类中,有多个函数可以实现此功能,如Properties、Functions等。
fun main(args: Array<String>) {
var user=User::class
println("成员数量:"+user.members.size)
println("------------------")
//获取所有成员
for (m in user.members){
println("成员名:"+m.name+",成员类型:"+m.returnType)
}
println("--------------------------------------")
//获取所有成员的属性
for (m in user.memberProperties){
println("成员名:"+m.name+",成员类型:"+m.returnType)
}
}
class User(val name:String,val age:Int){
fun special(){}
}
运行上面的代码,输出的结果如下。
成员数量:6
------------------
成员名:age,成员类型:kotlin.Int
成员名:name,成员类型:kotlin.String
成员名:special,成员类型:kotlin.Unit
成员名:equals,成员类型:kotlin.Boolean
成员名:hashCode,成员类型:kotlin.Int
成员名:toString,成员类型:kotlin.String
--------------------------------------
成员名:age,成员类型:kotlin.Int
成员名:name,成员类型:kotlin.String