MapStruct:对象的映射 class
MapStruct: Mapping of Object class
Class Source {
private String type;
private Object identifier;
}
标识符可以是 class AppointmentIdentifier 或 JobIdentifier 的对象;
我必须将源映射到具有以下结构的目标。
Class Target {
private String type;
private Object identifierBO;
}
标识符BO 可以是class AppointmentIdentifierBO 或JobIdentifierBO 的对象。
下面是我的映射器 class:
@Mapper
public interface ModelMapper {
Target toTarget(@NonNull final Source source);
AppointmentIdentifierBO toAppointmentIdentifierBO(AppointmentIdentifier appointmentIdentifier);
JobBO toJobBO(JobIdentifier jobIdentifier);
}
我知道,我缺少一些有助于将标识符映射到标识符 BO 的配置,但无济于事。
我只知道这样做:
@Mapper
public interface ModelMapper {
@Mapping(source = "identifier", target = "identifierBO", qualifiedByName = "identifierMapping")
Target toTarget(Source source);
@Named("identifierMapping")
default Object mapIdentifier(Object obj) {
if (obj instanceof AppointmentIdentifier)
return toAppointmentIdentifierBO((AppointmentIdentifier) obj);
if (obj instanceof JobIdentifier)
return toJobBO((JobIdentifier) obj);
throw new RuntimeException("Not supported type: " + obj.getClass());
}
AppointmentIdentifierBO toAppointmentIdentifierBO(AppointmentIdentifier appointmentIdentifier);
JobBO toJobBO(JobIdentifier jobIdentifier);
}
可怕吗?是的。作品?是的
Class Source {
private String type;
private Object identifier;
}
标识符可以是 class AppointmentIdentifier 或 JobIdentifier 的对象; 我必须将源映射到具有以下结构的目标。
Class Target {
private String type;
private Object identifierBO;
}
标识符BO 可以是class AppointmentIdentifierBO 或JobIdentifierBO 的对象。 下面是我的映射器 class:
@Mapper
public interface ModelMapper {
Target toTarget(@NonNull final Source source);
AppointmentIdentifierBO toAppointmentIdentifierBO(AppointmentIdentifier appointmentIdentifier);
JobBO toJobBO(JobIdentifier jobIdentifier);
}
我知道,我缺少一些有助于将标识符映射到标识符 BO 的配置,但无济于事。
我只知道这样做:
@Mapper
public interface ModelMapper {
@Mapping(source = "identifier", target = "identifierBO", qualifiedByName = "identifierMapping")
Target toTarget(Source source);
@Named("identifierMapping")
default Object mapIdentifier(Object obj) {
if (obj instanceof AppointmentIdentifier)
return toAppointmentIdentifierBO((AppointmentIdentifier) obj);
if (obj instanceof JobIdentifier)
return toJobBO((JobIdentifier) obj);
throw new RuntimeException("Not supported type: " + obj.getClass());
}
AppointmentIdentifierBO toAppointmentIdentifierBO(AppointmentIdentifier appointmentIdentifier);
JobBO toJobBO(JobIdentifier jobIdentifier);
}
可怕吗?是的。作品?是的