JMapper 不调用转换方法。
我有问题。 如下所示,我尝试使用 Jmap 注释映射类,一切正常,除了目标类中 List VehicleType 字段的转换方法。 Jmapper 不调用此方法,我将此字段设为空。 Source.class 中的所有必填字段都有值。
public class Destination {
@JMap("vehicleVariantDetails")
protected VehicleVariantDetailsType vehicleVariantDetails;
@JMapConversion(from = {"vehicleVariantDetails"}, to = {"vehicleVariantDetails"})
public VehicleVariantDetailsType conversion(List<VehicleVariantDetails> list) {
if(!list.isEmpty()) {
JMapper<VehicleVariantDetailsType, VehicleVariantDetails> mapper = new JMapper<>(
VehicleVariantDetailsType.class, VehicleVariantDetails.class);
return mapper.getDestination(list.get(0));
}
return null;
}
public class VehicleVariantDetailsType {
@JMap("vehicleRunningGearDetails")
protected VehicleRunningGearDetailsType vehicleRunningGearDetails;
}
public class VehicleRunningGearDetailsType {
@JMap("vehicleAxleDetails")
protected List<VehicleAxleDetailsType> vehicleAxleDetails;
@JMapConversion(from = {"vehicleAxleDetails"}, to = {"vehicleAxleDetails"})
public List<VehicleAxleDetailsType> conversion(List<VehicleAxleDetails> source) {
List<VehicleAxleDetailsType> target = new ArrayList<>();
for(VehicleAxleDetails axle : source) {
JMapper<VehicleAxleDetailsType, VehicleAxleDetails> mapper = new JMapper<>(
VehicleAxleDetailsType.class, VehicleAxleDetails.class);
VehicleAxleDetailsType dest = mapper.getDestination(axle);
target.add(dest);
}
return target;
}
}
public class VehicleAxleDetailsType {
@JMap(value = "vehicleAxleDetails", classes = VehicleRunningGearDetails.class)
protected List<VehicleTyreType> vehicleTyre;
@JMapConversion(from = {"vehicleAxleDetails"}, to = {"vehicleTyre"})
public List<VehicleTyreType> conversion2(List<VehicleAxleDetails> sourceList) {
List<VehicleTyreType> target = new ArrayList<>();
VehicleAxleDetails source = null;
if(!sourceList.isEmpty()) {
source = sourceList.get(0);
}
if(source!=null) {
VehicleTyreType dest = new VehicleTyreType();
dest.setVehicleTyreKindCode(source.getVehicleTyreKindCode());
dest.setVehicleTyreKindSize(source.getVehicleTyre().getVehicleTyreKindSize());
target.add(dest);
}
return target;
}
}
public class VehicleTyreType {
protected String vehicleTyreKindCode;
protected String vehicleTyreKindSize;
}
public class Source {
private List<VehicleVariantDetails> vehicleVariantDetails;
}
public class VehicleVariantDetails {
private VehicleRunningGearDetails vehicleRunningGearDetails;
}
public class VehicleRunningGearDetails {
private List<VehicleAxleDetails> vehicleAxleDetails;
}
public class VehicleAxleDetails {
private String vehicleTyreKindCode;
private VehicleTyre vehicleTyre;
}
public class VehicleTyre {
private String vehicleTyreKindSize;
}
有人知道我做错了什么吗?
询问您是否需要更多信息。