我想向 MappingContext 添加一些外部属性(不在我映射的对象中)。

这里我想要完成的是:

    MapperFactory mapperFactory = new DefaultMapperFactory.Builder().build();
    mapperFactory.classMap(ObjA.class, ObjB.class).customize(new CustomMapper<ObjA, ObjB>() {
        @Override
        public void mapAtoB(ObjA objA, ObjB objB, MappingContext context) {
            objB.setName((String) context.getProperty("name"));
        }
    }).byDefault().register();
    MapperFacade mapper = mapperFactory.getMapperFacade();

    ObjA objA = new ObjA();
    ObjB objB = new ObjB();

    MappingContext context = new MappingContext(); //PROBLEME IS HERE: MappingContext is a abstract class
    context.setProperty("name", "Some information not in objA nor in objB");
    mapper.map(objA, objB, context);

我怎样才能做到这一点?我可以动态地向上下文添加数据吗?或者是将额外数据传递给映射器的另一种方式?

最佳答案

解决方法很简单:

MappingContext context = new MappingContext.Factory().getContext();
context.setProperty("name", "value");
mapper.map(objA, objB, context);

关于java - 映射时将外部数据添加到 Orika MappingContext,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34819117/

10-11 19:24