假设我有2个类,一个是CustomerForm,其中包含以下属性名称,密码。另一个CustomerDomain类具有以下相同的属性名称,密码。我想将CustomerForm对象转换为CustomerDomain。什么是最流行和最方便的方式?
实际上我正在使用Spring Boot,FormValidation并保存到DB。
答案 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());