Java ModelMapper 映射对象中的对象
Java ModelMapper map an object in an object
我有以下 DTO 和 VO:
VO
public class ProjectVO {
private Date fechaInicio;
private Date fechaFin;
}
DTO
public class ProjectDTO {
private String fechaInicio;
private String fechaFin;
}
以及将字符串转换为日期的以下转换器:
Converter<String, Date> dateConverter = new Converter<String, Date>()
{
public Date convert(MappingContext<String, Date> context)
{
Date date;
try {
date = new SimpleDateFormat("dd/MM/yyyy").parse(context.getSource());
} catch (ParseException e) {
throw new DateFormatException();
}
return date;
}
};
modelMapper.addConverter(dateConverter);
如果我使用 modelmapper 将单个字符串转换为日期,它将与此转换器完美配合。
但现在我需要将我的 ProjectDTO 对象转换为 ProjectVO 对象,但我收到一条错误消息,指出它无法将字符串转换为日期。我怀疑这是因为 Date 在 Project 对象中。我对吗?我该如何解决?
谢谢。
好的,它就像一个魅力,如果我使用它会自动检测到它:
modelMapper.createTypeMap(String.class, Date.class);
然后添加我创建的自定义转换器:)
我有以下 DTO 和 VO:
VO
public class ProjectVO {
private Date fechaInicio;
private Date fechaFin;
}
DTO
public class ProjectDTO {
private String fechaInicio;
private String fechaFin;
}
以及将字符串转换为日期的以下转换器:
Converter<String, Date> dateConverter = new Converter<String, Date>()
{
public Date convert(MappingContext<String, Date> context)
{
Date date;
try {
date = new SimpleDateFormat("dd/MM/yyyy").parse(context.getSource());
} catch (ParseException e) {
throw new DateFormatException();
}
return date;
}
};
modelMapper.addConverter(dateConverter);
如果我使用 modelmapper 将单个字符串转换为日期,它将与此转换器完美配合。
但现在我需要将我的 ProjectDTO 对象转换为 ProjectVO 对象,但我收到一条错误消息,指出它无法将字符串转换为日期。我怀疑这是因为 Date 在 Project 对象中。我对吗?我该如何解决?
谢谢。
好的,它就像一个魅力,如果我使用它会自动检测到它:
modelMapper.createTypeMap(String.class, Date.class);
然后添加我创建的自定义转换器:)