From 6038c50bb91a000534542da0595ca8a251620781 Mon Sep 17 00:00:00 2001 From: oneplustow Date: Sat, 14 Mar 2020 20:25:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0copyProperties=E9=87=8D?= =?UTF-8?q?=E8=BD=BD=EF=BC=8C=E5=AE=9E=E7=8E=B0=E6=A0=B9=E6=8D=AEClass?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E5=AF=B9=E8=B1=A1=20=E5=B9=B6=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E5=B1=9E=E6=80=A7=E6=8B=B7=E8=B4=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/hutool/core/bean/BeanUtil.java | 12 ++++++++++++ .../java/cn/hutool/core/bean/BeanUtilTest.java | 14 ++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java b/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java index f328267db..4dcbd1769 100644 --- a/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java @@ -573,6 +573,18 @@ public class BeanUtil { // --------------------------------------------------------------------------------------------- copyProperties + /** + * 创建对应的Class对象并复制Bean对象属性 + * + * @param source 源Bean对象 + * @param tClass 目标Class + */ + public static T copyProperties(Object source, Class tClass) { + T target = ReflectUtil.newInstance(tClass); + copyProperties(source, target, CopyOptions.create()); + return target; + } + /** * 复制Bean对象属性 * diff --git a/hutool-core/src/test/java/cn/hutool/core/bean/BeanUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/bean/BeanUtilTest.java index 6c9917159..b12874e72 100644 --- a/hutool-core/src/test/java/cn/hutool/core/bean/BeanUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/bean/BeanUtilTest.java @@ -202,6 +202,20 @@ public class BeanUtilTest { Assert.assertTrue(set.contains("subName")); } + @Test + public void copyProperties(){ + SubPerson person = new SubPerson(); + person.setAge(14); + person.setOpenid("11213232"); + person.setName("测试A11"); + person.setSubName("sub名字"); + SubPerson person1 = BeanUtil.copyProperties(person, SubPerson.class); + Assert.assertEquals(14,person1.getAge()); + Assert.assertEquals("11213232",person1.getOpenid()); + Assert.assertEquals("测试A11",person1.getName()); + Assert.assertEquals("sub名字",person1.getSubName()); + } + @Test public void copyPropertiesHasBooleanTest() { SubPerson p1 = new SubPerson();