Kotlin伴侣对象和反射

在使用伴随对象和Java反射时,可以进入一些有趣的事情。 我不确定它是否有意,或者我只是不完全理解事情。

我有这个代码

public class TestClass { companion object { public platformStatic var data: String? = null } } 

data字段最终通过另一个类的反射来填充。

我发现,如果我用TestClass.javaClass访问类,我得到的内部伴侣类只有访问该字段的方法。 通过javaClass<TestClass>()访问它javaClass<TestClass>()使我能够完全访问字段的预期Java类。

我只是错过了明显的东西? 是否有这种行为的原因?

静态字段存储在外部类中以促进Java互操作:您可以说Java中的TestClass.data引用该字段(这应该是您首先将其标记为platformStatic原因)。