
Java
Javaimport org.modelmapper.Condition;import org.modelmapper.Converter;import org.modelmapper.ModelMapper;import org.modelmapper.spi.MappingContext;public class MappingExample { public static void mAIn(String[] args) { ModelMapper modelMapper = new ModelMapper(); // 创建一个Condition,用于判断是否选择映射 Condition<Child, String> nameCondition = new Condition<>() { @Override public boolean applies(MappingContext<Child, String> context) { return context.getSource().getAge() > 18; } }; // 创建一个Converter,用于执行映射转换 Converter<Child, String> nameConverter = new Converter<>() { @Override public String convert(MappingContext<Child, String> context) { return context.getSource().getName() + " (Adult)"; } }; // 配置映射规则 modelMapper.typeMap(Child.class, String.class) .addMappings(mapping -> mapping .when(nameCondition) .using(nameConverter) .map(Child::getName, String::toUpperCase)); // 测试映射 Child child1 = new Child("Alice", 16); Child child2 = new Child("Bob", 21); String name1 = modelMapper.map(child1, String.class); String name2 = modelMapper.map(child2, String.class); System.out.println("映射结果:"); System.out.println(name1); System.out.println(name2); } static class Child { private String name; private int age; public Child(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } }}使用ModelMapper根据Child类选择映射的案例代码解析上述案例代码中,我们首先创建了一个ModelMapper对象,并定义了一个Condition和一个Converter。Condition用于判断是否选择映射,Converter用于执行映射转换。在配置映射规则时,我们使用了typeMap方法来指定源类型Child和目标类型String之间的映射规则。通过addMappings方法,我们可以为映射规则添加条件、转换器和属性映射。在测试映射时,我们创建了两个Child对象child1和child2,并调用modelMapper的map方法进行映射操作。根据Child对象的年龄属性,如果大于18岁,则将名称转换为大写并添加"(Adult)"后缀,否则仅转换为大写。最后,我们输出了映射结果,可以看到根据Child类选择映射的结果如下:映射结果:ALICEBob (Adult)通过这个案例,我们可以看到使用ModelMapper根据Child类选择映射的过程。ModelMapper提供了丰富的功能,使得我们可以根据不同的条件进行灵活的对象映射操作。无论是简单的属性映射,还是复杂的条件转换,ModelMapper都能够帮助我们轻松地完成。希望本文能够帮助您更好地理解和应用ModelMapper。
Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号