Используйте kotlin kClass
для доступа к свойствам. когда вы перебираете свойства, вы можете проверить тип свойства, а если оно действительно типа DataClass
, тогда вы приведете его к DataClass
и получите доступ к его значениям как обычно.
var instance = AnotherDataClass("prop", DataClass("AnotherProperty"))
instance.javaClass.kotlin.memberProperties.forEach{
var propertyValue = it.get(instance)
when(propertyValue){
// if propertyValue is of DataClass then
// access its internal fields as you like
is DataClass -> println(propertyValue.inner)
else -> println(propertyValue)
}
}