我对Kotlin真的很陌生。我想实现这样的东西:
class classA {
fun doSomething(f: class){
when (f){
classB -> print("class B")
classC -> print("class C")
}
}
我不知道如何进行。我应该使用泛型吗?还是其他?如果答案已经存在,请随时将其标记为重复。
答案 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文档。