Я не вижу частных пользователей в Kotlin KClass - PullRequest
4 голосов
/ 25 сентября 2019

Я работаю над библиотекой, которая использует отражение, и я хотел бы манипулировать всеми свойствами / функциями данного KClass.

Используя свойство KClass::members, я могу манипулировать всеми доступными членами (согласно документации), а именно: общими, внутренними и защищенными полями, свойствами и функциями.Но я не вижу частных.

Используя отражение Java, я могу видеть все поля (включая приватные), используя Class.getDeclaredFields(), а также я вижу частные методы, используя Class.getDeclaredMethods().

Есть ли способ сделать это с помощью API отражения kotlin?

1 Ответ

3 голосов
/ 25 сентября 2019

Да, вы можете использовать declaredMembers, declaredFunctions и declaredMemberProperties, которые будут включать частных участников, но выигралиt включает в себя элементы, объявленные в супертипах, как и в API отражения Java.

...