我正在使用mapstruct从一个DTO映射到另一个。我有多个默认方法,但是其中两个具有返回值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) .lang.Object toObject(java.lang.String文本)。