Kotlin中带有类参数的构造函数

时间:2019-03-10 11:59:50

标签: android kotlin

我想拥有带有构造函数的Kotlin类,并像这样获得另一个类作为参数。

class LogHelper(cls : class) {

}

我在Java中具有相同的类,而我对此没有任何问题。

public LogHelper(Class cls) {
    LOG_TAG = cls.getSimpleName();
}

1 个答案:

答案 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>)。