|
@@ -0,0 +1,37 @@
|
|
|
+package com.zoro.mutiDb.util;
|
|
|
+
|
|
|
+import java.lang.reflect.Field;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @ClassName: BeanCompare
|
|
|
+ * @description: TODO
|
|
|
+ * @author: zhf
|
|
|
+ * @time: 2023/12/4 16:09
|
|
|
+ * @Version: 1.0
|
|
|
+ */
|
|
|
+public class BeanCompare {
|
|
|
+ public static boolean compareBean(Class<?> classA, Class<?> classB) {
|
|
|
+ return classA == classB || classA != null && classA.equals(classB);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static String compareBeanDifferent(Class<?> classA, Class<?> classB)
|
|
|
+ throws IllegalAccessException {
|
|
|
+ StringBuilder diff = new StringBuilder();
|
|
|
+ Field[] fields = classA.getDeclaredFields();
|
|
|
+ for (Field field : fields) {
|
|
|
+ field.setAccessible(true);
|
|
|
+ Object a = field.get(classA);
|
|
|
+ Object b = field.get(classB);
|
|
|
+ if (!a.equals(b)){
|
|
|
+ diff.append("\t")
|
|
|
+ .append(field.getName())
|
|
|
+ .append(": ")
|
|
|
+ .append(a)
|
|
|
+ .append(", ")
|
|
|
+ .append(b)
|
|
|
+ .append('\n');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return diff.toString();
|
|
|
+ }
|
|
|
+}
|