【发布时间】:2019-08-05 13:46:03
【问题描述】:
我正在使用 mapstruct 从一个 DTO 映射到另一个。我有多个默认方法,但其中 2 个返回值为 String 并且使用与输入参数相同的类给我“使用 java Mapstruct 的模糊映射方法”错误。
public class Action implements Serializable {
[...]
private String statusHistory;
[...]
private String propertiesOriginal;
private String propertiesEdited;
// Setter, Getter, ecc..
}
public class ActionDTO implements Serializable {
...
private Map<String, Integer> statusHistory = new HashMap<>();
...
private Object propertiesOriginal;
private Object propertiesEdited;
// Setter, Getter, ecc..
}
@Mapper(componentModel = "spring", uses = {})
public interface ActionMapper extends EntityMapper<ActionDTO, Action> {
default Map toMap(String text) throws IOException {
Map map = new HashMap();
try{
map = new ObjectMapper().readValue(text, new TypeReference<Map<String, Integer>>(){});
} catch (IOException e){
e.printStackTrace();
}
return map;
}
default String fromMap(Map map){
return new JSONObject(map).toString();
}
[...]
default Object toObject(String text) throws IOException {
return new ObjectMapper().readValue(text, Object.class);
}
default String fromObject(Object object) throws IOException {
return new ObjectMapper().convertValue(object, String.class);
}
[...]
}
错误:(16, 7) java: 找到将属性“java.lang.String statusHistory”映射到 java.util.Map 的不明确映射方法:java.util.Map toMap(java.lang.String text), java .lang.Object toObject(java.lang.String text)。
【问题讨论】:
标签: java class object dto mapstruct