在使用伴随对象和Java反射时,将其转化为一些有趣的内容。我不确定它是否有意,或者我只是不完全理解事情。Kotlin同伴对象和反射
我有这样的代码
public class TestClass {
companion object {
public platformStatic var data: String? = null
}
}
的data
场最终被通过反射填补从另一个类。
我发现的是,如果我访问类TestClass.javaClass
,我得到的内部伴侣类只有访问该字段的方法。通过javaClass<TestClass>()
访问它可以获得期望的Java类,并且可以完全访问这些字段。
我只是错过了一些明显的东西?是否有这种行为的原因?
请注意,在当前Kotlin'platformStatic'已经更改为注释'@ JvmStatic'。此外,函数'javaClass()'不是'T :: class.java'(因为'T :: class'返回Kotlin'KClass ','.java'扩展返回Java'类')。 。对于属性的后期初始化,请参见[lateinit](https://kotlinlang.org/docs/reference/properties.html#late-initialized-properties)关键字。 –