在Kotlin中定义log TAG常量的最好方法是什么?

我在我的Android应用程序中创建了我的第一个Kotlin类。 通常为了记录的目的,我有一个名字为TAG的常量。 我会在Java中做什么是:

 private static final String TAG = MyClass.class.getSimpleName(); 

我知道在Kotlin类中我可以用这种方式创建TAG

 private val TAG = MyClass::class.java.simpleName 

这对于使用Java和Kotlin的项目来说是可以的,但是如果我开始一个仅在Kotlin中的新项目呢? 我怎样才能定义TAG常量? 有没有更多的KOTLIN方式,我没有这个奇怪的建设class.java.simpleName

通常,常数都是大写(例如FOO),并位于伴随对象中 :

 class MyClass { companion object { public const val FOO = 1 } } 

并定义您可以使用的TAG字段:

 private val TAG = MyClass::class.qualifiedName 

我创建常量作为伴侣对象:

 companion object { val TAG = "SOME_TAG_VALUE" } 

那么,我可以这样使用它:

 MyClass.TAG 

val声明TAG变量

 class YourClass { companion object { //if use java and kotlin both in project //private val TAG = MyClass::class.java.simpleName //if use only kotlin in project private val TAG = YourClass::class.simpleName } } 

使用像这样的变量

 Log.d(YourClass.TAG, "Your message"); //or Log.e(TAG, "Your message");