Orika映射器 - 现场亚型

问题描述:

我有以下具体类:Orika映射器 - 现场亚型

public class A1 {} 

public class B1 extends A1 {} 

public class A2 {} 

public class B2 extends A2 {} 

public class B3 extends A2 {} 

而且我想获得一个B2实例映射MapperFacade.map(b1Instance, A2.class)

,当我需要这个,因为A2有许多亚型(B2和B3所示),我需要在需要时映射合适的一个

是否有可能通过Orika实现此目的?

对于将面临同样的问题的人,我解决了这个创造这样一个验证这是子类型实例

mapperFactory.classMap(SOURCE.class, DEST.class) 
        .customize(new CustomMapper<SOURCE, DEST>() { 
     @Override 
     public void mapAtoB(SOURCE source, DEST dest, MappingContext context) { 

      //verifies the type to instantiate 
      private A2 a2 = isB2() ? new B2() : new B3;    
      //use the mapper for the class (will use the B2 or B3 mapper) 
      mapperFacade.map(source.getA2(), a2); 
      // set the field into the dest object 
      dest.setB1(a2); 

     } 
} 
一个CustomMapper