Каков наилучший способ передать ссылку на класс в качестве параметра метода? - PullRequest
1 голос
/ 19 июня 2019

Я действительно новичок в Котлине. Я хочу реализовать что-то вроде этого:

class classA {
fun doSomething(f: class){
when (f){
classB -> print("class B")
classC -> print("class C")
}
}

Понятия не имею, как поступить. Должен ли я использовать дженерики? Или что-нибудь еще? Не стесняйтесь отмечать как дубликат, если ответ уже присутствует.

1 Ответ

1 голос
/ 19 июня 2019

Вы можете написать

fun doSomething(f: KClass<*>) {
    when (f){
        B::class -> print("class B")
        C::class -> print("class C")
    }
}

и затем назовите его как doSomething(B::class) или doSomething(String::class).

Многие библиотеки будут использовать Class вместо KClass, в этом случае вам потребуется B::class.java.

См. Ссылки на классы Документация.

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