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