andrew
07/30/2019, 2:17 PMstate::class.primaryConstructor!!.parameters
.filter {
val clazz = it.type.classifier!! as KClass<*>
clazz.companionObject !== null
}
.map {
val clazz = it.type.classifier as KClass<*>
val companion = clazz.companionObject!!
listOf(clazz, companion)
}
.forEach {
val clazz = it[0]
val companion = it[1]
companion.declaredFunctions.forEach { f ->
if (f.name === "persist") {
println(companion.javaObjectType)
println(clazz.javaObjectType)
val params = f.parameters
f.callBy(
mapOf(
params[0] to companion.objectInstance,
params[1] to context,
params[2] to clazz.createInstance()
)
)
}
}
}