Kotlin - 对象的SomeClass.class等价?

时间:2017-05-29 06:49:17

标签: java android kotlin

我正在尝试静态获取对象的名称(用于记录用途)

等同于:

public class SomeClass
{
    private static final String TAG = SomeClass.class.getSimpleName()
}

在Kotlin:

object SomeObject
{
   private const val TAG = ?
}

2 个答案:

答案 0 :(得分:5)

试试这个

SomeClass::class.simpleName

答案 1 :(得分:0)

如果你在Android应用程序中使用它,我建议你这样做:(packageName:className)

object SomeObject
{
    private val TAG = "${SomeObject::class.java.`package`.name}:${SomeObject::class.simpleName}"
}

这样做可以确保任何其他类的标记名称不会重复。 如果您要创建某人可以使用的lib /代码段,这确实很有帮助。否则具有相同的标记名称可能会导致运行时错误。