В настоящее время я создаю библиотеку для частного использования, которая предоставляет аннотацию (назовем ее @Something
), которую можно использовать в свойствах класса данных. Я создал аннотацию примерно так:
@Retention(AnnotationRetention.RUNTIME)
@Target(AnnotationTarget.PROPERTY)
annotation class Something
Она будет использоваться следующим образом
data class SomeDataClass (val param1: String, @Something val param2: String, val param3: String)
Затем я хочу получить доступ к следующим вещам в классе, который содержит свойства с этим аннотация:
- memberFunctions (для получения конструктора копирования)
- параметры конструктора копирования
- memberProperties
- аннотации свойств
- имя свойства
- Элемент списка
Теперь все работает правильно, пока я не сверну свою библиотеку с помощью ProGuard. Насколько я понимаю, мне нужно описать мои правила ProGuard в consumer-rules.pro
. Но что именно мне нужно добавить сюда? Я хочу, чтобы все классы данных в приложении, использующем мою библиотеку, со свойством, помеченным @Something
, были сохранены, чтобы я мог прочитать из него вышеприведенные вещи.