带你读《2022技术人的百宝黑皮书》——MapStruct,降低无用代码的神器(2)https://developer.aliyun.com/article/1339762?groupCode=taobaotech
基础转换
字段完全一致
待转换的类
@Data @Builder public class Source { private Long id; private Long age; private String userNick; }
转换目标类
@Data public class Target { private Long id; private Long age; private String userNick; }
转换器
注意:Mapper是Mapstruct的注解。
@Mapper public abstract class Converter { public static Converter INSTANT = Mappers.getMapper(Converter.class); public abstract Target convert(Source source); }
使用示例
final Source source = Source.builder() 2 .id(1L) .age(18L) .userNick("Nick") .build(); final Target target = Converter.INSTANT.convert(source); System.out.println(target);
输出:
Target(id=1, age=18, userNick=Nick)
一一对应的字段名不一致、类型不一致
待转换的类
@Data @Builder public class Source { private Long id; private Long age; private String userNick; }
转换目标类
@Data public class Target { private Long id; private Integer age; private String nick; }
转换目标类修改了age字段的类型,和userNick字段的名字,这两个类的字段仍然是一一对应的。
带你读《2022技术人的百宝黑皮书》——MapStruct,降低无用代码的神器(4)https://developer.aliyun.com/article/1339760?groupCode=taobaotech