我想拥有带有构造函数的Kotlin
类,并像这样获得另一个类作为参数。
class LogHelper(cls : class) {
}
我在Java中具有相同的类,而我对此没有任何问题。
public LogHelper(Class cls) {
LOG_TAG = cls.getSimpleName();
}
答案 0 :(得分:3)
您可以将构造函数与java.lang.Class
参数一起使用:
class LogHelper(cls: Class<*>) {
val LOG_TAG = cls.simpleName
}
或科特林的KClass
:
class LogHelper(cls: KClass<*>) { ... }
*
-Star Projection,用于表示我们没有有关通用参数的信息。
Kotlin不允许使用原始通用类型(例如Class
),您始终必须指定类型参数(例如Class<*>
,Class<Any>
,Class<SomeClass>
)。