Explorar el Código

修复对象转换bug

wuxw hace 6 años
padre
commit
9c24b92bb7

+ 3 - 1
java110-utils/src/main/java/com/java110/utils/util/BeanConvertUtil.java

@@ -5,6 +5,7 @@ import org.apache.commons.beanutils.BeanUtils;
 import org.apache.commons.beanutils.ConvertUtils;
 import org.apache.commons.beanutils.ConvertUtils;
 import org.apache.commons.beanutils.Converter;
 import org.apache.commons.beanutils.Converter;
 import org.apache.commons.beanutils.PropertyUtils;
 import org.apache.commons.beanutils.PropertyUtils;
+import org.apache.commons.lang3.reflect.FieldUtils;
 import org.springframework.cglib.beans.BeanCopier;
 import org.springframework.cglib.beans.BeanCopier;
 import org.springframework.cglib.beans.BeanMap;
 import org.springframework.cglib.beans.BeanMap;
 
 
@@ -90,7 +91,8 @@ public final class BeanConvertUtil {
     }
     }
 
 
     private static void objectFieldsPutMap(Object dstBean, BeanMap beanMap, Map orgMap) {
     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) {
         for (Field field : fields) {
             if (!orgMap.containsKey(field.getName())) {
             if (!orgMap.containsKey(field.getName())) {
                 continue;
                 continue;

+ 4 - 0
java110-utils/src/main/java/com/java110/utils/util/Java110Converter.java

@@ -26,6 +26,10 @@ public class Java110Converter implements Converter {
     }
     }
 
 
     public static Object getValue(Object value, Class target) {
     public static Object getValue(Object value, Class target) {
+
+        if (value == null) {
+            return value;
+        }
         //1.0 String 转 Date
         //1.0 String 转 Date
         if (value instanceof String && target == Date.class) {
         if (value instanceof String && target == Date.class) {
             String date = (String) value;
             String date = (String) value;

+ 2 - 0
java110-utils/src/test/java/com/java110/utils/util/BeanConvertUtilTest.java

@@ -27,6 +27,7 @@ public class BeanConvertUtilTest extends TestCase {
         personDto.setId(1);
         personDto.setId(1);
         personDto.setName("wuxw");
         personDto.setName("wuxw");
         personDto.setCreateTime(new Date());
         personDto.setCreateTime(new Date());
+        personDto.setPage("1");
         personDto.setAge(1);
         personDto.setAge(1);
         PersonVo personVo = new PersonVo();
         PersonVo personVo = new PersonVo();
         personVo = BeanConvertUtil.covertBean(personDto, personVo);
         personVo = BeanConvertUtil.covertBean(personDto, personVo);
@@ -83,6 +84,7 @@ public class BeanConvertUtilTest extends TestCase {
         Map info = new HashMap();
         Map info = new HashMap();
         info.put("name", "wuxw");
         info.put("name", "wuxw");
         info.put("createTime", new Date());
         info.put("createTime", new Date());
+        info.put("page",1);
         PersonDto personDto = null;
         PersonDto personDto = null;
          personDto = BeanConvertUtil.covertBean(info,PersonDto.class);
          personDto = BeanConvertUtil.covertBean(info,PersonDto.class);
 
 

+ 1 - 1
java110-utils/src/test/java/com/java110/utils/util/PersonDto.java

@@ -10,7 +10,7 @@ import java.util.Date;
  * @Version 1.0
  * @Version 1.0
  * add by wuxw 2020/1/28
  * add by wuxw 2020/1/28
  **/
  **/
-public class PersonDto {
+public class PersonDto extends parentDto{
 
 
     private int id;
     private int id;
 
 

+ 1 - 1
java110-utils/src/test/java/com/java110/utils/util/PersonVo.java

@@ -10,7 +10,7 @@ import java.util.Date;
  * @Version 1.0
  * @Version 1.0
  * add by wuxw 2020/1/28
  * add by wuxw 2020/1/28
  **/
  **/
-public class PersonVo {
+public class PersonVo extends parentDto{
 
 
     private String id;
     private String id;
     private String name;
     private String name;

+ 21 - 0
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;
+    }
+}