鉴于我的结构的这种简化:
public class Order
{
public String firstName;
public Optional<PaymentInfo> paymentInfo;
}
public class PaymentInfo
{
public String billingAddress;
public int totalAmount;
}
我想映射到这个类:
public class SimpleOrder
{
public string firstName;
public Optional<String> billingAddress;
}
我不确定如何仅映射billingAddress
Optional 是否有价值。我在想这样的事情:
private static Condition<?, ?> optionalHasValue =
(MappingContext<Optional<PaymentInfo>, String> context)
-> context.getSource().isPresent();
private static class OrderMap extends PropertyMap<Order, SimpleOrder>
{
@Override
protected void configure()
{
map(source.firstName, destination.firstName);
when(optionalHasValue)
.map(source.paymentInfo.get().billingAddress, destination.billingAddress);
}
}
但这失败并出现错误“无法映射最终类型 java.util.Optional。”。我确实看到了这个关于映射可选的问题,但它似乎是关于一个不同的问题。