Kotlin 静态常量字段返回修改后的字符串值



我正在尝试达到类名的常量字符串值。但我真的不明白为什么我会得到一个修改后的字符串值。这是我正在处理的代码:

class TestClass {
    companion object {
            @JvmField
            val TAG1: String = this::class.java.name as String
            val TAG2: String = this::javaClass.name 
    } 
}

在另一个试图达到如下值的类中:

class ComboClass {
    override fun onStart() {
       val tag1 = TestClass.TAG1
       val tag2 = TestClass.TAG2
       // tag1 "packagePath.TestClass$Companion"
       // tag2 "packagePath.TestClass$Companion"
    }
}

为什么我在字符串值的末尾得到packagePath.TestClass$Companion?我期待得到packagePath.TestClass

谢谢

为什么我在字符串值的末尾得到packagePath.TestClass$Companion?

伴随对象有自己的类,在本例中,对象类型为 TestClass$Companion ,因此this::class.java.name as Stringthis::javaClass.name都为您提供伴随对象的类的名称。

如何获得测试类

您将希望改用TestClass::class.java.nameTestClass::javaClass.name来获取TestClass

最新更新