在 Kotlin 中定义日志 TAG 常量的最佳方法是什么?

2022-08-31 11:14:14

我正在我的Android应用程序中创建我的第一个Kotlin类。通常出于日志记录目的,我有一个带有名称的常量。在Java中,我会做的是:TAG

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

我知道在 Kotlin 类中,我可以使用这种方式进行创建:TAG

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

这对于使用 Java 和 Kotlin 的项目来说是可以的,但是如果我启动一个只在 Kotlin 中的新项目呢?如何定义常量?有没有更多的Kotlin方式,我没有这种奇怪的结构?TAGclass.java.simpleName


答案 1

此扩展允许我们在任何类中使用TAG

val Any.TAG: String
    get() {
        val tag = javaClass.simpleName
        return if (tag.length <= 23) tag else tag.substring(0, 23)
    }

//usage
Log.e(TAG,"some value")

它还被验证为Android有效的日志标签。


答案 2

一般来说,常量都是大写的(例如FOO),位于伴随对象中:

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

    }
}

要定义 TAG 字段,您可以使用:

private val TAG = MyClass::class.qualifiedName

推荐