我正在尝试达到类名的常量字符串值。但我真的不明白为什么我会得到一个修改后的字符串值。这是我正在处理的代码:
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 String
和this::javaClass.name
都为您提供伴随对象的类的名称。
如何获得测试类
您将希望改用TestClass::class.java.name
和TestClass::javaClass.name
来获取TestClass