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