Java/Kotlin 如何反射获得实例
大家都知道反射是什么,就是运行时操作类,调用方法。
今天我遇到一个问题,如何将java.class的field转化为一个我想要的object?
我都已kotlin举例子
class A{
private val q1 : User = User("1")
private val q2 : User = User("2")
private val q3 : User = User("3")
}
val a = A()
//我想将q1,q2,q3加到一个list里面
val list = mutableListOf<User>()
a.javaClass.declaredFields.forEach{ field->
field.isAccessible = true
//每个field可以转化成User
val user = field.get(this) as? User //如果是静态变量 field.get(null)即可
user?.let{
list.add(it)
}
}
很简单是不是