Как создать изменяемый список с типом, полученным с помощью отражений - PullRequest
1 голос
/ 27 октября 2019

В настоящее время я работаю над проблемой десериализации, которая требует заполнения изменяемого списка в kotlin с универсальным типом, полученным с помощью отражений. В частности, мне предоставлена ​​переменная функции, и мне нужно сделать универсальный тип изменяемого списка равным типу возврата этой функции.

Хотя я могу вернуть MutableList типа «Любой» изнутри. Мне нужно, чтобы он имел определенный тип - я пробовал что-то вроде ниже, но это не работает. Я нашел очень похожую проблему со стековым потоком, решенную здесь, но у меня возникли проблемы с преобразованием его в kotlin: как создать список типов, полученных из отражения


val jsonArray = jsonTree.get("arrayFieldName") // returns jsonNode
val method: Method = retrieveMethod() // JsonNode::intValue / booleanValue / ...

val genericList = mutableListOf<method.returnType>()
for (item in jsonArray.elements())
  genericList.add(method.invoke(item))

return genericList
...