Kotlin反射的简单使用实例代码:
import kotlin.reflect.full.companionObject
import kotlin.reflect.full.companionObjectInstance
import kotlin.reflect.full.createInstance
class reflect {
companion object {
fun getObjReflect(str: String){
println(str)
}
@JvmStatic
fun getStaticReflect(str: String){
println(str)
}
}
fun getReflect(str: String){
println(str)
}
}
object newReflect{
fun getReflect(){
println("text")
}
}
class testClass{
companion object {
@JvmStatic
fun main(array: Array<String>){
val reflect= Class.forName("reflect").kotlin
for (function in reflect.members){
if(function.name!="getReflect")
continue
println(function.name)
function.call(reflect.createInstance(),"test")
}
for (function in reflect.companionObject!!.members){
if(function.name=="getObjReflect"||function.name=="getStaticReflect"){
println(function.name)
function.call(reflect.companionObjectInstance,"test")
}
}
val newReflect = Class.forName("newReflect").kotlin
for (function in newReflect.members){
if(function.name=="getReflect"){
println(function.name)
function.call(newReflect.objectInstance)
}
}
}
}
}