Java 将转换器与嵌套对象一起使用时出现问题

Java 将转换器与嵌套对象一起使用时出现问题,java,modelmapper,Java,Modelmapper,我想映射以下代码和相关的对象层次结构(A,B->ADTO,BDTO)。特别是,我只想使用转换器将枚举字段映射为特定属性的字符串(day->dayStr和type->typeStr): typeMap2似乎被忽略,因此,typeStr为空且未映射。我做错什么了吗?我错过了什么?谢谢你的帮助 它写得很清楚,问了一个直截了当的问题,表明作者已经在寻找解决方案了。。。那么,为什么唯一的回答是否决票呢?它写得很清楚,提出了一个直截了当的问题,表明作者已经在寻找解决方案了。。。那么,为什么唯一的回应是否决票

我想映射以下代码和相关的对象层次结构(A,B->ADTO,BDTO)。特别是,我只想使用转换器将枚举字段映射为特定属性的字符串(
day
->
dayStr
type
->
typeStr
):


typeMap2
似乎被忽略,因此,
typeStr
为空且未映射。我做错什么了吗?我错过了什么?谢谢你的帮助

它写得很清楚,问了一个直截了当的问题,表明作者已经在寻找解决方案了。。。那么,为什么唯一的回答是否决票呢?它写得很清楚,提出了一个直截了当的问题,表明作者已经在寻找解决方案了。。。那么,为什么唯一的回应是否决票?
public class Test {

    @Data
    @NoArgsConstructor
    static class A {

        enum Day {
            MON, TUE, WED, THU, FRI, SAT, SUN
        }

        private Day day;

        private B b;
    }

    @Data
    @NoArgsConstructor
    static class B {

        enum Type {
            A, B, C
        }

        private Type type;

        private int value;
    }

    @Data
    @NoArgsConstructor
    static class ADTO {

        private String dayStr;

        private BDTO b;
    }

    @Data
    @NoArgsConstructor
    static class BDTO {

        private String typeStr;

        private int value;
    }

    public static void main(String[] args) {

        A a = new A();
        B b = new B();
        b.setType(B.Type.A);
        b.setValue(34);
        a.setDay(A.Day.FRI);
        a.setB(b);

        ModelMapper modelMapper = new ModelMapper();
        modelMapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT);
        Converter<Enum, String> enumStringConverter = new AbstractConverter<Enum, String>() {
            @Override
            protected String convert(Enum source) {
                if (source != null) {
                    return source.name();
                } else {
                    return null;
                }
            }
        };

        TypeMap<A, ADTO> typeMap = modelMapper.createTypeMap(A.class, ADTO.class);
        typeMap.addMappings(m -> m.using(enumStringConverter).map(A::getDay, ADTO::setDayStr));
        TypeMap<B, BDTO> typeMap2 = modelMapper.createTypeMap(B.class, BDTO.class);
        typeMap2.addMappings(m -> m.using(enumStringConverter).map(B::getType, BDTO::setTypeStr));
        System.out.println(modelMapper.map(a, ADTO.class));
        modelMapper.validate();
    }
}
Test.ADTO(dayStr=FRI, b=Test.BDTO(typeStr=null, value=34))

Exception in thread "main" org.modelmapper.ValidationException: ModelMapper validation errors:

1) Unmapped destination properties found in TypeMap[A -> ADTO]:

    com.voxloud.subscription.kafka.builder.Test$BDTO.setTypeStr()

1 error
    at org.modelmapper.internal.Errors.throwValidationExceptionIfErrorsExist(Errors.java:246)
    at org.modelmapper.ModelMapper.validate(ModelMapper.java:547)
    at com.voxloud.subscription.kafka.builder.Test.main(Test.java:84)