我有下面的映射器,它工作得很好,但我想知道是否有任何方法可以定义一次并重复使用remoteToNewLocalAppremoteToLocalAppUpdate上的重复映射.

@Mapper
interface AppMapper {

    @Mapping(target = "appId", source = "atemsPackage.appId", defaultExpression = "java(packageId)")
    @Mapping(target = "appOnRemote", constant = "true")
    fun remoteToNewLocalApp(atemsPackage: AtemsPackage, packageId: String): LocalApp

    @Mapping(target = "appId", source = "atemsPackage.appId", defaultExpression = "java(packageId)")
    @Mapping(target = "appOnRemote", constant = "true")
    fun remoteToLocalAppUpdate(atemsPackage: AtemsPackage, packageId: String): LocalAppRemoteUpdate

    companion object {
        val INSTANCE: AppMapper =
            Mappers.getMapper(AppMapper::class.java)
    }
}

UPDATE

@Mapper
interface AppMapper {

    @Mapping(target = "appId", source = "atemsPackage.appId", defaultExpression = "java(packageId)")
    @Mapping(target = "appOnRemote", constant = "true")
    fun remoteToNewLocalApp(atemsPackage: AtemsPackage, packageId: String): LocalApp

    @InheritConfiguration(name = "remoteToNewLocalApp")
    fun remoteToLocalAppUpdate(atemsPackage: AtemsPackage, packageId: String): LocalAppRemoteUpdate

    companion object {
        val INSTANCE: AppMapper =
            Mappers.getMapper(AppMapper::class.java)
    }
}

推荐答案

可以在第二个映射器方法上使用@InheritConfiguration.以下是取自官方文档的Java示例.

@Mapper
public interface CarMapper {

    @Mapping(target = "numberOfSeats", source = "seatCount")
    Car carDtoToCar(CarDto car);

    @InheritConfiguration
    void carDtoIntoCar(CarDto carDto, @MappingTarget Car car);
}

进一步的读数可以在official documentation中找到.

Kotlin相关问答推荐

使用另一个对象的列表创建对象

Kotlin多平台(KMP)保存到文件不能在iOS上保存

如何接受任何派生类KClass

Kotlin Coroutine()是如何工作的?S阻止了.

在构造函数中创建内部类实例时,只能使用包含类的接收器调用内部类的构造函数

Kotlin 说不需要强制转换,但删除后会出现新警告

在 Kotlin 中,为什么我们要在闭包中捕获值

Kotlin 协程:flatMapLatest 什么都不发出

Rabin-Karp字符串匹配的实现(Rolling hash)

如何在 Kotlin 中声明一个空数组而不期望 null?

如何从 kotlin 中的数据类访问 val?

IntentService (kotlin) 的默认构造函数

Kotlin 枚举中的循环引用

API 'variant.getJavaCompile()' 已过时

无法创建类 ViewModel kotlin 的实例

Ktor 在 java.library.path 中没有 netty_transport_native_epoll_x86_64

TypeConverter()在Android的TypeConverter错误中具有私有访问权限

内联 onFocusChange kotlin

如何将vararg作为数组传递给Kotlin中的函数?

Recyclerview: listen to padding click events