Итак, у меня есть класс данных (модель) kotlin, представляющий объект JSON (для модифицированного преобразователя GSON), и я хочу перебрать свою модель в определенном порядке для дальнейшего создания listView данных JSON.
Модель имеет вложение с ArrayLists.
Model.kt
object Model {
data class Result(
val results: ArrayList<Results>?,
val syllables: Syllables,
...)
data class Results(
val definition: String,
val partOfSpeech: String,
val synonyms: ArrayList<String>?,
val antonyms: ArrayList<String>?,
...)
Я пытался сделать некоторые размышления, но не понял, как перебрать результаты ArrayList,Нечто подобное (возникает ошибка: ArrayList не может быть приведен к Model.Results):
class CallOrder(private val obj: Model.Result) {
fun getOrder(): List<String> {
val result = ArrayList<String>()
for (prop in Model.Result::class.declaredMemberProperties) {
if (prop.name == "results")
for (prop1 in Model.Results::class.declaredMemberProperties)
result.add("${prop1.name} = ${prop1.get(prop.get(this.obj) as Model.Results)}")
}
return result.subList(0, 1)
}
}
Я хочу, чтобы что-то вызывалось так:
CallOrder(obj, property1, property2, property3.property31).next() // returns obj.property1
CallOrder(obj, "property1", "property2", "property3.property31").next() // or to do the same with string representations (of attribute path)
Есть идеи, чтобы реализовать это?