我正在尝试使用 Orika 将一种类型的地址对象映射到更简单的类型,但遇到了一个问题,如果我的列表没有至少与我在映射器中指定的一样多的元素,我会收到 IndexOutOfBounds 异常。
这是我的示例对象:
public class SourceAddress {
List<String> addressLines;
}
public class DestinationAddress {
String address1;
String address2;
String address3;
}
这是我的映射器:
mapperFactory.getMapperFacade().map(SourceAddress.class, DestinationAddress.class)
.field("addressLine[0]", "address1")
.field("addressLine[1]", "address2")
.field("addressLine[2]", "address3")
.mapNulls(false)
.byDefault()
.register();
但在我的示例中,源地址中的列表只有两个字符串。我希望有一种方法可以选择性地映射 address3 字段,但我似乎无法在 Orika 单元测试中找到示例。
当我尝试映射并获得异常时得到的输出是:
Error occurred: java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
有谁知道这是否可以通过简单的方式实现,或者我是否必须为这种类型编写一个 CustomMapper?