java Kotlin伴生对象和反射
在使用伴随对象和Java反射时遇到了一些有趣的事情。我不确定这是否是有意的,或者我只是没有完全理解事情
我有这个密码
public class TestClass {
companion object {
public platformStatic var data: String? = null
}
}
data
字段最终通过另一个类的反射来填充
我发现,如果我使用TestClass.javaClass
访问该类,就会得到一个内部的伴生类,它只有访问该字段的方法。通过javaClass<TestClass>()
访问它可以获得预期的Java类,该类可以完全访问字段
我是不是错过了一些明显的东西?这种行为有什么原因吗
# 1 楼答案
静态字段存储在外部类中以促进Java互操作:您可以在Java中说
TestClass.data
来引用该字段(这应该是您首先将其标记为platformStatic
的原因)