MapStruct — это мощная библиотека генерации кода, которая упрощает сопоставление между Java-компонентами. С появлением Kotlin MapStruct теперь поддерживает создание кода сопоставления и для классов Kotlin. В этой статье блога мы углубимся в тему средств доступа к записи в MapStruct Kotlin и рассмотрим различные методы и примеры кода для их эффективного использования.
Понимание средств доступа к записи.
Аксессоры записи, также известные как сеттеры, — это методы, используемые для изменения состояния объекта путем присвоения новых значений его свойствам. В контексте MapStruct Kotlin методы доступа к записи играют решающую роль в сопоставлении данных из исходных объектов в целевые объекты.
Метод 1: стандартный метод установки
Наиболее распространенный способ определить метод доступа к записи в MapStruct Kotlin — использовать стандартный метод установки. Давайте рассмотрим пример, в котором у нас есть исходный класс SourceUserи целевой класс TargetUserсо свойством name. Код сопоставления будет выглядеть следующим образом:
@Mapper
interface UserMapper {
fun mapToTarget(source: SourceUser): TargetUser
@Mapping(target = "name", source = "fullName")
fun setName(sourceUser: SourceUser): String
}
Метод 2: собственный метод установки
MapStruct Kotlin также позволяет определять собственные методы установки для более сложных сценариев сопоставления. Вот пример:
@Mapper
interface UserMapper {
fun mapToTarget(source: SourceUser): TargetUser
@Mapping(target = "name", source = "fullName")
fun setName(sourceUser: SourceUser): String
@Mapping(target = "age", source = "birthDate")
fun setAge(sourceUser: SourceUser): Int
}
Метод 3: метод плавной установки
Методы плавной установки обычно используются в Kotlin для обеспечения более краткого и выразительного способа установки свойств. MapStruct Kotlin также поддерживает свободные настройки. Рассмотрим следующий пример:
@Mapper
interface UserMapper {
fun mapToTarget(source: SourceUser): TargetUser
@Mapping(target = "name", source = "fullName")
fun withName(sourceUser: SourceUser): UserMapper
@Mapping(target = "age", source = "birthDate")
fun withAge(sourceUser: SourceUser): UserMapper
}
В этом примере методы withNameи withAgeвозвращают сам UserMapper, что позволяет создавать цепочки методов.
Асессоры записи необходимы в MapStruct Kotlin для сопоставления данных из исходных объектов в целевые объекты. В этой статье мы рассмотрели три различных метода определения средств доступа к записи: стандартные методы установки, пользовательские методы установки и свободные методы установки. Каждый метод имеет свой вариант использования, и выбор подходящего зависит от сложности сценария сопоставления. Эффективно используя эти методы, вы можете упростить код сопоставления и улучшить удобство обслуживания и читаемость ваших приложений Kotlin.