我在 Kotlin KClass 中看不到私有成员

I can't see private members in a Kotlin KClass

我正在开发一个使用反射的库,我想操纵给定 KClass 的所有属性/函数。

使用 KClass::members 属性,我可以操作所有可访问的成员(根据文档),即:public、内部和受保护的字段、属性和函数。但是我看不到私人的。

使用 Java 反射,我可以使用 Class.getDeclaredFields() 查看所有字段(包括私有字段),同样我可以使用 Class.getDeclaredMethods() 查看私有方法。

有没有办法使用 kotlin 反射来做到这一点 API?

是的,您可以使用 declaredMembers, declaredFunctions, and declaredMemberProperties,它将包含私有成员,但不会包含超类型中声明的成员,就像 Java 反射 API.