У меня в приложении есть класс Kotlin с большим количеством атрибутов, и я хочу построить метод, который сохраняет имя переменной в словаре. Словарь выглядит так:
HashMap<String, Pair<Any, Any>>()
Целью этого является сохранение изменений, внесенных в определенный атрибут, я сохраняю имя переменной в качестве ключа, а в паре я сохраняю старое значение и новое значение. Для уведомления об изменениях я использую шаблон Observer. Таким образом, всякий раз, когда сеттер вызывается из атрибута, об изменении будет сообщено и сохранено в словаре.
Приведенный ниже код приводит к следующему:
var person = Person("Harry", 44)
person.age = 45
HashMap("age", (44, 45))
Сейчас я просто прописываю имя переменной в виде строки, поэтому мой вопрос:
Как динамически получить имя переменной в Kotlin?
Я видел тот же вопрос в Java: Отражение Java: Как получить имя переменной?
Также некоторые другие вопросы по той же теме, утверждающие, что это невозможно: Получить свойство name переменной
Я могу понять, что невозможно получить имя переменной, потому что компилятор просто не имеет этой информации, но я все еще стремлюсь увидеть, есть ли другие решения для этой проблемы.