From 363cf83f55c886bacb8ccab451071442a3313e67 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期五, 29 十一月 2024 04:04:40 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 common/src/main/java/com/ycl/common/utils/CopyUtils.java |   48 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 48 insertions(+), 0 deletions(-)

diff --git a/common/src/main/java/com/ycl/common/utils/CopyUtils.java b/common/src/main/java/com/ycl/common/utils/CopyUtils.java
new file mode 100644
index 0000000..5faafab
--- /dev/null
+++ b/common/src/main/java/com/ycl/common/utils/CopyUtils.java
@@ -0,0 +1,48 @@
+package com.ycl.common.utils;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.BeanWrapper;
+import org.springframework.beans.BeanWrapperImpl;
+
+import java.beans.PropertyDescriptor;
+import java.util.HashSet;
+import java.util.Objects;
+import java.util.Set;
+
+/**
+ * 鑷畾涔夊鍒跺伐鍏风被
+ */
+public class CopyUtils {
+        /**
+         * 鎵�鏈変负绌哄�肩殑灞炴�ч兘涓峜opy
+         *
+         * @param source
+         * @param target
+         */
+        public static void copyNoNullProperties(Object source, Object target) {
+            BeanUtils.copyProperties(source, target, getNullField(source));
+        }
+
+        /**
+         * 鑾峰彇灞炴�т腑涓虹┖鐨勫瓧娈�
+         *
+         * @param target
+         * @return
+         */
+        private static String[] getNullField(Object target) {
+            BeanWrapper beanWrapper = new BeanWrapperImpl(target);
+            PropertyDescriptor[] propertyDescriptors = beanWrapper.getPropertyDescriptors();
+            Set<String> notNullFieldSet = new HashSet<>();
+            if (propertyDescriptors.length > 0) {
+                for (PropertyDescriptor p : propertyDescriptors) {
+                    String name = p.getName();
+                    Object value = beanWrapper.getPropertyValue(name);
+                    if (Objects.isNull(value)) {
+                        notNullFieldSet.add(name);
+                    }
+                }
+            }
+            String[] notNullField = new String[notNullFieldSet.size()];
+            return notNullFieldSet.toArray(notNullField);
+        }
+}

--
Gitblit v1.8.0