Kotlin представил встроенный класс , который является псевдонимом строго типизированного типа. Это может быть полезно при использовании с базой данных. Например,
inline class Age(val value: Int)
inline class Height(val value: Int)
Когда они записываются в базу данных, они компилируются в Int
, но Kotlin может помешать вам случайно поместить Height
в Age
Поле. Если вы используете псевдоним типа или Int
напрямую, это возможно с псевдонимом типа, но встроенный класс выдает ошибку времени компиляции.
Однако это также вызывает проблемы с привязкой данных Android. Я получаю data binding error
, когда пытаюсь связать встроенный класс String
с атрибутом String
.
Хотя можно написать несколько типов адаптеров, чтобы обойти это, но это лишает цели использование встроенного класса и непрактично для создания адаптеров для всех встроенных классов.
Я хотел бы спросить, есть ли изящные способы решить эту проблему?