1

鉴于我的结构的这种简化:

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;
}

我不确定如何仅映射billingAddressOptional 是否有价值。我在想这样的事情:

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。”。我确实看到了这个关于映射可选的问题,但它似乎是关于一个不同的问题。

4

0 回答 0