【发布时间】:2019-12-31 04:16:51
【问题描述】:
MapStrut 新手;对象到字符串错误:
[错误] /util/LicenseMapper.java:[11,23] 无法将属性“java.lang.Object license.customFields[].value”映射到“java.lang.String license.customFields[]。价值”。考虑声明/实现一个映射方法:“java.lang.String map(java.lang.Object value)”。
代码:
@Mapper
public interface LicenseMapper {
List<License> jsonToDao(List<com.integrator.vo.license.License> source);
}
vo.license 包含具有属性 as 的 CustomFields 列表
@SerializedName("Value")
@Expose
private Object value;
Json 将一个字段的输入作为对象,因为它可能是布尔值或字符串或任何值,因此我已将其映射到对象中。而在 dao 层中,String 中具有相同的字段。 (在自定义映射器中,我只是 String.valueof 但不确定如何使用 Mapstrut 实现它)
谁能告诉我在 LicenseMapper 中需要哪些设置才能将 Object 转换为 String?
许可结构 - 来源和目的地:
.
.
private String notes;
private Boolean isIncomplete;
private List<CustomField> customFields = null;
private List<Allocation> allocations = null;
Source 中的自定义字段结构(已删除 gson 注释):
.
.
private String name;
private Object dataType;
private Object value;
目标中的自定义字段结构
private String name;
private String datatype;
private String value;
【问题讨论】:
标签: java gson dto mapstruct mapper