我试图让Mapstruct理解源表达式是一个字符串,它可以格式化为java.util.LocalDate,但我不确定我做得对不对。我尝试按照地图结构文档中的说明进行操作。
@Mapping(componentModel = "cdi", uses=DateMapper.class)
public abstract class RedactedClassName
@Mapping(target = "birthDate",
expression = "java(fileLine.substring(redactedpackagename.Constants.BIRTH_DATE_START_POS, redatcedpackagename.Constants.BIRTH_DATE_END_POS))")
abstract PersonBio fileLineToPersonBio(String fileLine);
使用以下格式化程序
public class DateMapper {
public String asString(LocalDate date) {
return date != null ? date.format(DateTimeFormatter.ofPattern("yyyyMMdd")) : null;
}
public LocalDate asDate(String date) {
return date != null ? LocalDate.parse(date, DateTimeFormatter.ofPattern("yyyyMMdd")) : null;
}
}
创建
@Override
PersonBio fileLineToPersonBio(String fileLine) {
if ( fileLine == null ) {
return null;
}
PersonBio personBio = new PersonBio();
personBio.setBirthDate( fileLine.substring(redactedpackagename.Constants.BIRTH_DATE_START_POS, redactedpackagename.Constants.BIRTH_DATE_END_POS) );
return personBio;
}
编辑:我已经将这篇文章修改了一下,我认为应该工作,但它仍然不起作用。
呼如林
临摹微笑
相关分类