我看不到Kotlin KClass的私人成员

时间:2019-09-25 12:45:24

标签: kotlin kotlin-reflect

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

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

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

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

1 个答案:

答案 0 :(得分:3)

是的,您可以使用https://stackoverflow.com/a/13182163/12112986declaredMembersdeclaredFunctions,它们将包括私有成员,但不包括在超类型中声明的成员,就像Java反射API。