我试图创建一个函数,该函数可以接受任何单例对象,并使用值打印其属性。
示例代码:
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检索值?
答案 0 :(得分:2)
怎么样呢?
inline fun <reified T : Any> getObjectValues() = T::class
.declaredMemberProperties
.map { it.name to it.get(T::class.objectInstance!!) }
基本上,您需要获取T的实例,以便您可以调用get