我正在尝试将String转换为Date,但是似乎没有触发转换器,并且得到了MappingException
。这是我的代码:
@Bean
public ModelMapper modelMapper() {
ModelMapper modelMapper = new ModelMapper();
Converter<String, Date> dateConverter = context -> {
Date date;
try {
date = new SimpleDateFormat("dd/MM/yyyy").parse(context.getSource());
} catch (ParseException e) {
date = null;
}
System.out.println("working");
return date;
};
modelMapper.addConverter(dateConverter);
return modelMapper;
}
然后我就这样使用它,但是我继续遇到相同的错误:
Date date = this.modelMapper.map("20/12/2019", Date.class);
1) Converter org.modelmapper.internal.converter.DateConverter@27c7dc27 failed to convert java.lang.String to java.util.Date.
甚至都没有打印working
字。
我想念什么?
谢谢。
答案 0 :(得分:0)
好的,出于某种原因,我的笨拙的IDE(IntelliJ)建议我更改上面的代码以解决问题。这就是使它无法正常运行的原因,似乎是lambda。使用此代码,它可以完美地工作:
Converter<String, Date> dateConverter = new Converter<String, Date>()
{
public Date convert(MappingContext<String, Date> context)
{
Date date = null;
try {
date = new SimpleDateFormat("dd/MM/yyyy").parse(context.getSource());
} catch (ParseException e) {
System.out.println(e.toString());
}
return date;
}
};