Tag: 反射

Kotlin与Java的反射互操作性

在编写与Java和Kotlin兼容的反射代码时,开发人员应该注意哪些警告? 例如,我有一个使用反射的现有库,它与Java很好地协作。 但是,当我用Kotlin的时候,我的反射代码似乎没有拿起字段上的注释。 以下是我注意到的一些差异。 1.获取一个类的实例 // Example 1.1 – Java Class<?> userClass = User.class; // From a class name userClass = userInstance.getClass(); // OR from an instance 在Kotlin中获取Java类实例 // Example 1.2 – Kotlin val userClass = userInstance.javaClass // From an instance 我无法像在Java中那样在Kotlin中使用.class工具或.getClass()方法。 2.代表 当我在Kotlin类中使用委托属性时,我检索的属性具有$delegate后缀。 这与我们在Java中获得的字段有点相反(我明白Kotlin没有字段,只有属性)。 这如何影响元编程? 但是,对于代表,我发现大多数方法像在Java中一样保持其行为。 我还有什么其他的不同吗? 要使Java和Kotlin能够互操作,需要了解上面讨论的1以及Kotlin带给元编程的其他限制/差异。