使用MapStruct转换继承类型:详细指南
在使用MapStruct对继承类型的转换时,可以通过使用@Mapper注解中的'uses'属性来指定实现转换的类。在实现类中,需要使用@Mapping注解来指定每个属性的转换规则。
例如,假设有以下两个类:
public class Source {
private String name;
// getters/setters
}
public class Target {
private String name;
// getters/setters
}
public class SubSource extends Source {
private String subName;
// getters/setters
}
public class SubTarget extends Target {
private String subName;
// getters/setters
}
要将SubSource转换为SubTarget,可以创建一个名为SubMapper的Mapper类,并在@Mapper注解的'uses'属性中指定SubMapper:
@Mapper(uses = SubMapper.class)
public interface SubMapper {
@Mapping(source = 'subName', target = 'subName')
SubTarget subSourceToSubTarget(SubSource subSource);
}
@Mapper
public interface ParentMapper {
@Mapping(source = 'name', target = 'name')
Target sourceToTarget(Source source);
SubTarget subSourceToSubTarget(SubSource subSource);
}
这样,在调用ParentMapper.subSourceToSubTarget()方法时,MapStruct将会自动调用SubMapper.subSourceToSubTarget()方法来转换SubSource到SubTarget。
原文地址: https://www.cveoy.top/t/topic/oLVA 著作权归作者所有。请勿转载和采集!