Java将一个类转换为另一个类

时间:2016-02-22 14:12:08

标签: java validation spring-boot

假设我有2个类,一个是CustomerForm,其中包含以下属性名称,密码。另一个CustomerDomain类具有以下相同的属性名称,密码。我想将CustomerForm对象转换为CustomerDomain。什么是最流行和最方便的方式?

实际上我正在使用Spring Boot,FormValidation并保存到DB。

3 个答案:

答案 0 :(得分:2)

您可以使用 com.google.gson.Gson 将一个类对象转换为另一个类对象。

首先将A类对象转换为json String,然后将Json字符串转换为B类对象。

Gson gson = new Gson();
String jsonString = gson.toJson(customerFormObject);

CustomerDomain customerDomainObject = gson.fromJson(jsonString, CustomerDomain.class);

答案 1 :(得分:0)

您可以使用BeanUtils.copyProperties(source, destination)获取更多信息BeanUtils

将给定源bean 的属性值复制到**目标bean。

注意:只要属性匹配,源类和目标类就不必相互匹配,甚至不必相互派生。

表示源bean暴露但目标bean不会被忽略的任何bean属性。

这只是一种方便的方法。对于更复杂的传输需求,请考虑使用完整的BeanWrapper。

答案 2 :(得分:0)

由@ pragnani-kinnera建议的BeanUtils.copyProperties可以正常工作。不过,我宁愿避免使用它。在封面下,BeanUtils使用反射,除非必要,否则最好避免使用反射。它很慢并且在重构过程中容易破裂。

对于这种简单的转换,最简单的方法是最简单的方法:

   CustomerDomain customerDomain = new CustomerDomain();
   customerDomain.setName(customerForm.getName());
   customerDomain.setPassword(customerForm.getPassword());