我正在尝试创建一个函数,该函数可以接受任何单例对象,并使用值打印其属性。
样例代码:
object MyObject {
val text = "Hello World"
}
inline fun <reified T: Any> printValues() = T::class
.declaredMemberProperties
.forEach {
println(it.name + "=" + it.value) // value doesn't exist
}
/* RUN */
fun main(args: Array<String>) {
printValues<MyObject>()
}
在kotlin中,是否可以通过像这样的通用方式从MyObject检索值?
最佳答案
这样的事情怎么样:
inline fun <reified T : Any> getObjectValues() = T::class
.declaredMemberProperties
.map { it.name to it.get(T::class.objectInstance!!) }
基本上,您需要获取T的实例,以便可以调用
get
关于generics - 如何通过泛型从Singleton对象检索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52667972/