如何从一种类型转换为除包名称外相同的多种类型?

How to convert from one type, to multiple types which are identical aside from package name?

我有一个要转换的基 class。我要转换为的所有类型都彼此相同,除了包名称。它们是在我无法控制的规范中创建的。有没有一种创建通用转换器的方法,所以我不会一遍又一遍地重复相同的 get 和 set 调用?我的显然比下面的更复杂,但我要强调的一点是原始类型和最终类型的字段名称不同。

原文:

com.mycompany.base.ConvertMe;

class ConvertMe {
  private String name;
  private String colour;
  private String fruit;

  //getters and setters...
}

需要映射到:

com.mycompany.convertedA;

class Result {
  private String firstName;
  private String favouriteColour;
  private String favouriteFruit;

  //getters and setters...
}

并映射到:

com.mycompany.convertedB;

class Result {
  private String firstName;
  private String favouriteColour;
  private String favouriteFruit;

  //getters and setters...
}

Dozer 就是您要找的。对于这些情况,它非常灵活方便,因为它支持通过注释进行映射,xml 映射。

Orika 可能是另一种选择。尽管 Dozer 是功能强大且最简单的工具之一。

如需更详细的比较,请查看此post