反射 API
- KClass
- KCallable
- KFunction
- KProperty
member references
class references
bound class references
constructor references
bound constructor references
property references
bound property references
function references
bound function references
member references 原理分析
kotlin.Function 類用于描述 functional type 的值, 如 function references、lambda、匿名函數(shù)
- functional type
- function references
- lambda
- 匿名函數(shù)
fun main() {
val book = Book(1,"Kotin入門到進(jìn)階", "AAA")
val kClass = book::class
println("simpleName = ${kClass.simpleName}")
println("打印屬性--------")
// 打印成員屬性(包括父類中的)
kClass.memberProperties.forEach {
println("memberProperties=${it.name}")
}
// 打印擴(kuò)展屬性(包括父類中的)
kClass.memberExtensionProperties.forEach {
println("memberExtensionProperties=${it.name}")
}
// 打印成員屬性(不包括父類中的)
kClass.declaredMemberProperties.forEach {
println("declaredMemberProperties=${it.name}")
}
// 打印擴(kuò)展屬性(不包括父類中的)
kClass.declaredMemberExtensionProperties.forEach {
println("declaredMemberExtensionProperties=${it.name}")
}
println("打印函數(shù)--------")
// 打印所有的非擴(kuò)展函數(shù)(包括父類中的)
kClass.memberFunctions.forEach {
println("memberFunctions=${it.name}")
}
// 打印所有的擴(kuò)展函數(shù)(包括父類中的)
kClass.memberExtensionFunctions.forEach {
println("memberExtensionFunctions=${it.name}")
}
// 打印所有的非擴(kuò)展函數(shù)(不包括父類中的)
kClass.declaredMemberFunctions.forEach {
println("declaredMemberFunctions=${it.name}")
}
// 打印所有的擴(kuò)展函數(shù)(不包括父類中的)
kClass.declaredMemberExtensionFunctions.forEach {
println("declaredMemberExtensionFunctions=${it.name}")
}
}