Я хочу создать оболочку Kotlin вокруг библиотеки Java с некоторыми неудачными проектными решениями.Одна проблема, с которой я сталкиваюсь, заключается в том, что ни один из POJO в библиотеке не следует обычным соглашениям Java Bean для методов получения и установки.
Kotlin может определять свойства объектов Java, которые следуют обычным соглашениям получения / установки:
Методы, которые следуют соглашениям Java для методов получения и установки (методы без аргументов с именами, начинающимися с get, и методы с одним аргументом с именами, начинающимися с set), представлены как свойства в Kotlin.Булевы методы доступа (где имя метода получения начинается с is, а имя метода set начинается с set) представлены как свойства, имена которых совпадают с именем метода get.
(см. здесь )
Но в случае этой библиотеки все POJO имеют геттеры и сеттеры, которые являются просто именем поля, а не getField / setField, поэтому Котлин не может вывести синтаксис доступа к свойствам.
Каким был бы самый чистый способ обернуть эти объекты и использовать обычные соглашения Котлина?
Кажется, что реализация правильных методов получения и установки с помощью методов расширения не включает синтаксис доступа к свойству(Я предполагаю, что это потому, что под капотом методы расширения превращаются в статические служебные классы, а расширенный класс фактически не изменяется).
Какие альтернативы доступны?