防止在MapStruct中进行空检查

时间:2018-04-10 06:17:54

标签: mapstruct

映射

@Mapping(target="subjectName", source="courseName")
Target map(Source source);

MapStruct生成的方法

public Target map(Source source) {
        if ( source == null ) {
            return null;
        }
        Target target = new Target();
        target.setSubjectName( source.getCourseName() );
        return target;
    }

现在,我的要求是防止在MapStruct生成的方法中对source进行空检查。怎么能实现呢?

2 个答案:

答案 0 :(得分:0)

目前实现这一目标的唯一方法是定义自己的自定义public Target map(Source source)方法。 MapStruct已经存在一个未解决的问题,即支持@Nullable@NonNull注释,但仍未完成。

答案 1 :(得分:0)

@Mapping(target="subjectName", source="courseName",qualifiedByName = "yourCustomMethod")
Target map(Source source);

@Named("yourCustomMethod")
default Target yourCustomMethod(Source source){
if ( source == null ) {
        return null;
    }
    Target target = new Target();
    target.setSubjectName( source.getCourseName() );
    return target;
}

我称它为从编译器:D

复制