在 Kotlin 中定义日志 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

原文由 Mario Kutlev 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

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

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

    }
}

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

 private val TAG = MyClass::class.qualifiedName

原文由 Gabriele Mariotti 发布,翻译遵循 CC BY-SA 3.0 许可协议

这个扩展允许我们在任何类中使用 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 有效日志标记。

原文由 Fredy Mederos 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题