问题描述
我在使用 AddressReversePopulator
将 AddressData
转换为 AddressModel
时遇到问题。
问题出现在 populate(addressData,addressModel)
方法的这一行
addressModel.setLine1(addressData.getLine1());
addressModel.setLine2(addressData.getLine2());
AddressModel.java
上的 setLineX 方法使用
getPersistenceContext().setDynamicValue(this,LINE1,value);
但是在尝试填充 Line1 和 Line2 时,DynamicAttributesProvider()
中的 ItemmodelContextImpl.class
为空,因此它不会填充 addressModel
中的两个值,而是填充器的其他字段中提供者没问题。
我该如何解决这个问题?
谢谢
解决方法
在这种情况下,如果您将 Line1 和 Line2 接收为 null,请尝试设置空字符串并继续。它会起作用。 示例:
addressModel.setLine1(formatLine1(addressData.getLine1()));
private String formatLine1(String line1)
{
if (StringUtils.isEmpty(line1))
{
return "";
}
String[] parts = line1.split(",");
if (parts.length > 0)
{
String[] newLine1 = Arrays.stream(parts).filter(p -> !p.isEmpty()).toArray(String[]::new);
return String.join("," + " ",newLine1);
}
return "";
}