将类引用作为方法参数传递的最佳方法是什么?

时间:2019-06-19 01:16:44

标签: kotlin

我对Kotlin真的很陌生。我想实现这样的东西:

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

我不知道如何进行。我应该使用泛型吗?还是其他?如果答案已经存在,请随时将其标记为重复。

1 个答案:

答案 0 :(得分:1)

你可以写

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

请参阅Class References文档。