У меня есть такой javaclass внутри Kotlin проекта:
public final class BuildConfig {
public static final String FOO = "HelloWorld";
public static final String ALT_FOO = "HelloWorldAlt";
}
Как я могу получить строку со значением FOO
? (не значение поля, имя поля)
т.е. val theName = "FOO"
Например, позже у меня будет карта.
val map = mapOf("FOO" to "HelloWorldAlt", "BAR" to "CoronaGotMeInside")
и я хочу сделать следующее:
val result = map[theName]
println(result)
// HelloWorldAlt
Я знаю, что могу получить все значения полей, как показано ниже, но я не могу понять, как получить данные c имя переменной-члена от одного состояния c вар. Я не хочу повторять все staticProperties. Я хочу явно посмотреть один.
val notResult = BuildConfig::class.staticProperties.filter { it.name == "FOO" }[0].getter.call()
println(notResult)
// HelloWorld
В качестве примера не итеративного решения я хочу что-то вроде этого:
val theName = BuildConfig.FOO::variableName() // Totally made up, but I want to act on the singular constant, not on a collection
Это позволило бы мне иметь некоторую уверенность во время компиляции при использовании переменных с именем карты ключ. Сумасшедший я знаю.