From 9c24b92bb786dbdcc3f69f7d4110f9e77baf1748 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期二, 28 一月 2020 20:02:40 +0800
Subject: [PATCH] 修复对象转换bug

---
 java110-utils/src/main/java/com/java110/utils/util/Java110Converter.java    |    4 ++++
 java110-utils/src/main/java/com/java110/utils/util/BeanConvertUtil.java     |    4 +++-
 java110-utils/src/test/java/com/java110/utils/util/PersonDto.java           |    2 +-
 java110-utils/src/test/java/com/java110/utils/util/PersonVo.java            |    2 +-
 java110-utils/src/test/java/com/java110/utils/util/BeanConvertUtilTest.java |    2 ++
 java110-utils/src/test/java/com/java110/utils/util/parentDto.java           |   21 +++++++++++++++++++++
 6 files changed, 32 insertions(+), 3 deletions(-)

diff --git a/java110-utils/src/main/java/com/java110/utils/util/BeanConvertUtil.java b/java110-utils/src/main/java/com/java110/utils/util/BeanConvertUtil.java
index cd38f0f..b554b43 100644
--- a/java110-utils/src/main/java/com/java110/utils/util/BeanConvertUtil.java
+++ b/java110-utils/src/main/java/com/java110/utils/util/BeanConvertUtil.java
@@ -5,6 +5,7 @@
 import org.apache.commons.beanutils.ConvertUtils;
 import org.apache.commons.beanutils.Converter;
 import org.apache.commons.beanutils.PropertyUtils;
+import org.apache.commons.lang3.reflect.FieldUtils;
 import org.springframework.cglib.beans.BeanCopier;
 import org.springframework.cglib.beans.BeanMap;
 
@@ -90,7 +91,8 @@
     }
 
     private static void objectFieldsPutMap(Object dstBean, BeanMap beanMap, Map orgMap) {
-        Field[] fields = dstBean.getClass().getDeclaredFields();
+        //Field[] fields = dstBean.getClass().getDeclaredFields();
+        Field[] fields = FieldUtils.getAllFields(dstBean.getClass());
         for (Field field : fields) {
             if (!orgMap.containsKey(field.getName())) {
                 continue;
diff --git a/java110-utils/src/main/java/com/java110/utils/util/Java110Converter.java b/java110-utils/src/main/java/com/java110/utils/util/Java110Converter.java
index bd88b74..9e992c6 100644
--- a/java110-utils/src/main/java/com/java110/utils/util/Java110Converter.java
+++ b/java110-utils/src/main/java/com/java110/utils/util/Java110Converter.java
@@ -26,6 +26,10 @@
     }
 
     public static Object getValue(Object value, Class target) {
+
+        if (value == null) {
+            return value;
+        }
         //1.0 String 杞� Date
         if (value instanceof String && target == Date.class) {
             String date = (String) value;
diff --git a/java110-utils/src/test/java/com/java110/utils/util/BeanConvertUtilTest.java b/java110-utils/src/test/java/com/java110/utils/util/BeanConvertUtilTest.java
index ae2438a..03b65fa 100644
--- a/java110-utils/src/test/java/com/java110/utils/util/BeanConvertUtilTest.java
+++ b/java110-utils/src/test/java/com/java110/utils/util/BeanConvertUtilTest.java
@@ -27,6 +27,7 @@
         personDto.setId(1);
         personDto.setName("wuxw");
         personDto.setCreateTime(new Date());
+        personDto.setPage("1");
         personDto.setAge(1);
         PersonVo personVo = new PersonVo();
         personVo = BeanConvertUtil.covertBean(personDto, personVo);
@@ -83,6 +84,7 @@
         Map info = new HashMap();
         info.put("name", "wuxw");
         info.put("createTime", new Date());
+        info.put("page",1);
         PersonDto personDto = null;
          personDto = BeanConvertUtil.covertBean(info,PersonDto.class);
 
diff --git a/java110-utils/src/test/java/com/java110/utils/util/PersonDto.java b/java110-utils/src/test/java/com/java110/utils/util/PersonDto.java
index 9c0316c..b5002e5 100644
--- a/java110-utils/src/test/java/com/java110/utils/util/PersonDto.java
+++ b/java110-utils/src/test/java/com/java110/utils/util/PersonDto.java
@@ -10,7 +10,7 @@
  * @Version 1.0
  * add by wuxw 2020/1/28
  **/
-public class PersonDto {
+public class PersonDto extends parentDto{
 
     private int id;
 
diff --git a/java110-utils/src/test/java/com/java110/utils/util/PersonVo.java b/java110-utils/src/test/java/com/java110/utils/util/PersonVo.java
index e3894c7..5a4cb67 100644
--- a/java110-utils/src/test/java/com/java110/utils/util/PersonVo.java
+++ b/java110-utils/src/test/java/com/java110/utils/util/PersonVo.java
@@ -10,7 +10,7 @@
  * @Version 1.0
  * add by wuxw 2020/1/28
  **/
-public class PersonVo {
+public class PersonVo extends parentDto{
 
     private String id;
     private String name;
diff --git a/java110-utils/src/test/java/com/java110/utils/util/parentDto.java b/java110-utils/src/test/java/com/java110/utils/util/parentDto.java
new file mode 100644
index 0000000..da265dc
--- /dev/null
+++ b/java110-utils/src/test/java/com/java110/utils/util/parentDto.java
@@ -0,0 +1,21 @@
+package com.java110.utils.util;
+
+/**
+ * @ClassName parentDto
+ * @Description TODO
+ * @Author wuxw
+ * @Date 2020/1/28 19:59
+ * @Version 1.0
+ * add by wuxw 2020/1/28
+ **/
+public class parentDto {
+    private String page;
+
+    public String getPage() {
+        return page;
+    }
+
+    public void setPage(String page) {
+        this.page = page;
+    }
+}

--
Gitblit v1.8.0