简体   繁体   English

Java ModelMapper将日期映射为字符串格式字段

[英]Java ModelMapper Map Date to String format field

I have: 我有:

Object1.getData that returns Date objects Object2.setData that acquire a String and populate his field. Object1.getData返回Date对象Object2.setData是获得一个字符串并填充他的领域。

I would map a Data object from src to Object2 in the String field in yyyy-MM-dd format. 我会以yyyy-MM-dd格式将数据对象从src映射到String字段中的Object2。

My Code: 我的代码:

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 "";
}

The problem is that v is always null. 问题在于v始终为null。

What I am doing wrong? 我做错了什么?

Thanks 谢谢

Why don't you try to use Converter ? 您为什么不尝试使用Converter

Converter<Date, String> formatDate = ctx -> ctx.getSource() != null
                ? formatDateToString(ctx.getSource())
                : "";
typeMap.addMappings(mapper -> mapper.using(formatDate).map(Object1::getData, Object2::setData));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM