1

给定以下模型

class Project {
  String groupId;
  String artifactId;
  String version;
}

class ProjectWithId {
  String id;
  String groupId;
  String artifactId;
  String version;
}

如何正确使用 ModelMapper 来组合 groupId、artifactId 和 version 的值?例如,有什么方法可以避免以下情况:

ProjectWithId projectWithId = modelMapper.map(project, ProjectWithId.class);
projectWithId.setId(project.getGroupId() + ":" + project.getArtifactId() + ":" + project.getVersion());
4

1 回答 1

1

您需要创建自定义转换器来组合 3 个属性,即 groupId、artifactId 和 version。

例如

Converter<String, String> converter = new Converter<String, String>() {
  public String convert(MappingContext<String, String> context) {
    Project project = (Project) context.getParent().getSource();
    return project.groupId + project.artifactId+ project.version;
  }
};

映射时使用此转换器

modelMapper.addConverter(converter);
于 2017-08-30T14:47:14.717 回答