BeanUtils.copyProperties()方法記錄
阿新 • • 發佈:2022-04-12
我們如果有兩個具有很多相同屬性的JavaBean。
一個oldBean,一個newBean
現在需要將newBean裡面相同屬性的值賦給oldBean
老辦法是:
oldBean.setName(newBean.getName);
這樣一個屬性一個屬性的賦值,程式碼量大,很繁瑣。
那麼可以通過BeanUtils提供的copyProperties()方法實現。
OldUser
@Data @NoArgsConstructor @AllArgsConstructor public class OldUser { private String name; private Integer age; }
NewUser
@Data @NoArgsConstructor @AllArgsConstructor public class NewUser { private String name; private String sex; }
實現:
import com.test.test.vo.NewUser; import com.test.test.vo.OldUser; import org.apache.commons.beanutils.BeanUtils; import java.lang.reflect.InvocationTargetException;public class testCopyProperties { public static void main(String[] args) throws InvocationTargetException, IllegalAccessException { OldUser oldUser = new OldUser("zhangsan", 22); NewUser newUser = new NewUser("lisi", "男"); System.out.println("oldUser:"+oldUser); System.out.println("newUser:"+newUser); BeanUtils.copyProperties(oldUser, newUser); System.out.println("轉換後oldUser:"+oldUser); System.out.println("轉換後newUser:"+newUser); } }
注意,導包是 import org.apache.commons.beanutils.BeanUtils;
結果:
轉換前: oldUser:OldUser(name=zhangsan, age=22) newUser:NewUser(name=lisi, sex=男) 轉換後oldUser:OldUser(name=lisi, age=22) 轉換後newUser:NewUser(name=lisi, sex=男)