Вызов универсального метода на основе коллекции Map()JAVA

Программисты JAVA общаются здесь
Anonymous
Вызов универсального метода на основе коллекции Map()

Сообщение Anonymous »

Я создаю процесс разминки для API, который происходит при запуске.
Метод, с которым мне приходится работать (из другой библиотеки), имеет следующую сигнатуру:
fun getImportantData(pathToData: String): T

На данный момент мне удалось создать Map с нужным мне путем и типом. Я хочу вызвать указанную выше функцию в цикле и убедиться, что значения можно получить. Трудность в том, что я не могу предоставить T при вызове getImportantData. Мой подход ошибочен или есть другой способ, который я не рассматриваю?
https://pl.kotl.in/SDAYyFRoq
Вот почти рабочий пример
fun main() {
data class DataStructure1(val name: String, val secretKey: String) //provided by user
data class DataStructure2(val credential1: String, val credential2: String) // provided by user

val warmThese = mapOf("pathToData" to DataStructure1::class, "pathToData2" to DataStructure2::class)
// user gives me the above structure, so I can warm it up
warmThese.forEach { (path, type) ->
getImportantData() // what is the T here
}

println("Done warmup")
}

fun getImportantData(path: String): T {
// get data and deserialize to T (this is one of the data classes above, it comes from the developer, I cannot know what it is in my code)

println("Finished warm up for: $path")
}


Подробнее здесь: https://stackoverflow.com/questions/786 ... ing-kclass

Вернуться в «JAVA»