Kotlin – 与SomeClass.class对象的等价性?

我试图静态获取对象的名称(对于日志记录使用)

等同于:

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

在Kotlin:

 object SomeObject { private const val TAG = ? } 

尝试这个

 SomeClass::class.simpleName 

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

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

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