Kotlin получает объявленную стоимость имущества участника - PullRequest
2 голосов
/ 12 октября 2019

Что такое эквивалентный код Class#getDeclaredField в Котлине? Я ищу чистую реализацию Kotlin ... возможно отражение?

class Test {
    public static final String TEST = "Hello";
    public static void main(String[] args) {
        System.out.println(
            Test.class.getDeclaredField("TEST").get(Test.class));
    }
}

1 Ответ

2 голосов
/ 12 октября 2019

сначала добавьте эту зависимость, чтобы избежать ошибки времени выполнения

<dependency>
    <groupId>org.jetbrains.kotlin</groupId>
    <artifactId>kotlin-reflect</artifactId>
    <version>1.3.50</version>
</dependency>

, затем:

val member = Test::class.members.find { it.name=="TEST" }
println(member)
println(member.call(Test())

output:

val generic.Test.TEST: kotlin.String
Hello

тип элемента равен Kcallable<*>?

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-callable/index.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...