我有两门课:
public class Customer {
private String firstname;
private String lastname;
}
和
public class Buyer {
private String firstname;
private String lastname;
}
我希望这两个类都转换为以下类的:
public class CustomerDTO {
private String firstname;
private String lastname;
}
我不能为类或其他东西使用公共接口。有没有一种方法可以用一个转换器类将customer和buyer都转换为customer dto类?
3条答案
按热度按时间bt1cpqcv1#
不能转换(Map)两个类(
Customer
,Buyer
)到第三个(CustomerDTO
)因为没有两个类共享的公共类型(即接口)。java不使用duck类型,因此不能依赖于类看起来相似的事实。编译器没有看到。话虽如此,您至少可以自动生成所需的Map器。一个选项是mapstruct。在您的情况下,Map将非常简单(基于文档):
mapstruct是一个编译时依赖项:它将在编译时为您生成Map程序,以便您可以查看它们。
感谢royal bg建议使用方法重载(
toCustomerDto
)一个更干净的解决方案。sqougxex2#
例如,可以使用模型Map器http://modelmapper.org/getting-started/
ryoqjall3#
这是一个示例代码,您可以将其添加到客户和买家的dto代码中