当前位置: 首页 > 面试题库 >

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

孙震博
2023-03-14
问题内容

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

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

我知道在Kotlin类中可以TAG使用以下方式创建:

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

这对于使用Java和Kotlin的项目是可以的,但是如果我启动仅在Kotlin中的新项目该怎么办?如何定义TAG常数?在我没有这种奇怪构造的情况下,还有更多的科特林方式class.java.simpleName吗?


问题答案:

通常,常量是所有大写字母(例如FOO),并且位于伴随对象中:

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

    }
}

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

private val TAG = MyClass::class.qualifiedName


 类似资料:
  • 我正在Android应用程序中创建我的第一个Kotlin类。通常出于日志记录的目的,我有一个名为的常量。在Java中我要做的是:

  • null 另外,如果使用,是否需要导入文件,或者不导入文件,常量将全局可用? 我可以从逻辑上得出一个结论,即是定义自定义错误域之类的东西时的最佳选择(我真的对吗?)。但其他人呢?

  • 附注。当我试图从其他地方访问此方法时,出现以下错误。 Org.SpringFramework.Expression.Spel.SpelEvaluationException:EL1008E:(pos 0):在“org.SpringFramework.Cache.Interceptor.CacheExpressionRootObject”类型的对象上找不到字段或属性“Cache Key”

  • 问题内容: 我正在尝试首次使用Kotlin构建android应用程序。 我想在OnCreate方法外的某些按钮上声明,并且只能在带有findViewById的此函数内对其进行初始化。 我可以像Java中那样用简单干净的代码声明吗? 因为当将其转换为Kotlin时,它看起来像: 然后在初始化OnClick函数时需要添加!标志: 什么是正确和最清洁的方法? 问题答案: 这是一个很好的用例。标记属性可以

  • 问题内容: 我有一个应用程序,它读取带有大量数据行的CSV文件。我根据数据类型为用户提供了行数的摘要,但我想确保不会读取太多的数据行并导致OutOfMemoryErrors。每行转换为一个对象。有没有一种简便的方法以编程方式找出该对象的大小?是否有一个引用定义了一个原始类型和对象引用有多大VM? 现在,我的代码可以读取多达32,000行,但我还想让代码显示尽可能多地读取行,直到使用32 MB内存为

  • 问题内容: 我看过这样的例子: 并假设我可以有一个Constants类来包装常量,并声明它们为static final。我几乎不了解Java,并且想知道这是否是创建常量的最佳方法。 问题答案: 这是完全可以接受的,甚至可能是标准。 类型是哪里,是所有大写字母的名称,下划线带有空格,并且VALUE是常量值; 我强烈建议不要将常量放在自己的类或接口中。 附带说明:声明为final且可变的变量仍然可以更