Java ModelMapper 将日期映射到字符串格式字段
Java ModelMapper Map Date to String format field
我有:
Object1.getData
即 returns 日期对象
Object2.setData
获取字符串并填充其字段。
我将以 yyyy-MM-dd 格式将数据对象从 src 映射到 String 字段中的 Object2。
我的代码:
typeMap.addMappings(mapper -> {
...
mapper.map(src -> src.getData(), (dest, v) -> dest.setDataInStringFormat(formatDateToString(v)));
...
});
public static String formatDateToString(Object v) {
String dateFormat = "yyyy-MM-dd";
if(v!=null)
return new SimpleDateFormat(dateFormat).format(v).toString();
else return "";
}
问题是 v 总是空的。
我做错了什么?
谢谢
你为什么不尝试使用 Converter
?
Converter<Date, String> formatDate = ctx -> ctx.getSource() != null
? formatDateToString(ctx.getSource())
: "";
typeMap.addMappings(mapper -> mapper.using(formatDate).map(Object1::getData, Object2::setData));
我有:
Object1.getData
即 returns 日期对象
Object2.setData
获取字符串并填充其字段。
我将以 yyyy-MM-dd 格式将数据对象从 src 映射到 String 字段中的 Object2。
我的代码:
typeMap.addMappings(mapper -> {
...
mapper.map(src -> src.getData(), (dest, v) -> dest.setDataInStringFormat(formatDateToString(v)));
...
});
public static String formatDateToString(Object v) {
String dateFormat = "yyyy-MM-dd";
if(v!=null)
return new SimpleDateFormat(dateFormat).format(v).toString();
else return "";
}
问题是 v 总是空的。
我做错了什么?
谢谢
你为什么不尝试使用 Converter
?
Converter<Date, String> formatDate = ctx -> ctx.getSource() != null
? formatDateToString(ctx.getSource())
: "";
typeMap.addMappings(mapper -> mapper.using(formatDate).map(Object1::getData, Object2::setData));