From dd6687b118561100e1677e88a9c2f5842a54c531 Mon Sep 17 00:00:00 2001
From: jialh <1972868360@qq.com>
Date: 星期四, 16 四月 2026 18:14:14 +0800
Subject: [PATCH] 水电话费
---
java110-utils/src/main/java/com/java110/utils/util/BeanConvertUtil.java | 49 +++++++++++++++++++++++++++++++++----------------
1 files changed, 33 insertions(+), 16 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 21975c8..04e27ac 100755
--- a/java110-utils/src/main/java/com/java110/utils/util/BeanConvertUtil.java
+++ b/java110-utils/src/main/java/com/java110/utils/util/BeanConvertUtil.java
@@ -69,17 +69,13 @@
* @return 鐩爣瀵硅薄
*/
public static <T1, T2> T2 covertBean(T1 orgBean, T2 dstBean) {
-
- if(orgBean == null){
+ if (orgBean == null) {
return dstBean;
}
-
try {
- //BeanUtils.copyProperties(dstBean, orgBean);
if (orgBean instanceof Map) {
BeanMap beanMap = BeanMap.create(dstBean);
- //beanMap.putAll((Map)orgBean);
- objectFieldsPutMap(dstBean, beanMap, (Map) orgBean);
+ objectFieldsPutMap(dstBean, beanMap, (Map<String, Object>) orgBean);
return dstBean;
}
final BeanCopier beanCopier = BeanCopier.create(orgBean.getClass(), dstBean.getClass(), true);
@@ -92,23 +88,44 @@
}
private static void objectFieldsPutMap(Object dstBean, BeanMap beanMap, Map<String, Object> orgMap) {
- //Field[] fields = dstBean.getClass().getDeclaredFields();
Field[] fields = FieldUtils.getAllFields(dstBean.getClass());
for (Field field : fields) {
- if (!orgMap.containsKey(field.getName())) {
+ String fieldName = field.getName();
+ if (!orgMap.containsKey(fieldName)) {
continue;
}
- Class<?> dstClass = field.getType();
- //System.out.println("瀛楁绫诲瀷" + dstClass);
- Object value = orgMap.get(field.getName());
- if(value == null){
+ Class<?> targetType = field.getType();
+ Object value = orgMap.get(fieldName);
+ if (value == null) {
continue;
}
- //String 杞琩ate
- Object tmpValue = Java110Converter.getValue(value, dstClass);
- //System.out.println("tmpValue"+value.toString());
- beanMap.put(field.getName(), tmpValue);
+
+ try {
+ // 鉁� 鏍稿績淇锛氬彧瑕佹槸 Map锛屼笖鐩爣涓嶆槸鍩虹绫诲瀷锛屽氨閫掑綊杞� DTO
+ if (value instanceof Map) {
+ // 鎺掗櫎鍩虹绫诲瀷銆佸寘瑁呯被銆丼tring銆丏ate
+ boolean isBasicType = targetType.isPrimitive()
+ || Number.class.isAssignableFrom(targetType)
+ || String.class == targetType
+ || Boolean.class == targetType
+ || Date.class == targetType;
+
+ if (!isBasicType) {
+ // 閫掑綊鍒涘缓骞惰浆鎹㈠祵濂楀璞�
+ Object nestedObj = targetType.newInstance();
+ objectFieldsPutMap(nestedObj, BeanMap.create(nestedObj), (Map<String, Object>) value);
+ value = nestedObj;
+ }
+ }
+
+ // 鍘熸湁绫诲瀷杞崲锛圫tring->Date绛夛級
+ Object convertedValue = Java110Converter.getValue(value, targetType);
+ beanMap.put(fieldName, convertedValue);
+
+ } catch (Exception ignored) {
+ // 杞崲澶辫触涓嶆姏閿欙紝淇濇寔鍘熸湁閫昏緫鍏煎
+ }
}
}
--
Gitblit v1.8.0