java - 在 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

最佳答案

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

https://stackoverflow.com/questions/45841067/

相关文章:

java - 如何将 Java 源文件的一部分转换为 Kotlin?

android - kotlin-stdlib-jre7 已弃用。请改用 kotlin-stdlib

android - Kotlin - 将 List 转换为 MutableList 的最惯用方式

java - 将 Kotlin 数据对象映射到数据对象的更好方法

kotlin - 如何在 Kotlin 中写入文件?

generics - kotlin 中的 out 关键字是什么

dictionary - Kotlin 是否有 Map 文字的语法?

kotlin - 如何将项目添加到 Kotlin 中的 ArrayList?

kotlin - 如何从命令行运行 Kotlin 类?

kotlin - 如何在 Kotlin 中迭代 hashmap?