|
|
@@ -13,6 +13,7 @@ import java.io.ObjectInputStream;
|
|
|
import java.io.ObjectOutputStream;
|
|
|
import java.io.Serializable;
|
|
|
import java.lang.reflect.Array;
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
|
|
|
/**
|
|
|
@@ -23,13 +24,32 @@ import java.util.*;
|
|
|
public class ObjectUtil {
|
|
|
|
|
|
/**
|
|
|
+ * 比较两个对象是否相等,此方法是 {@link #equal(Object, Object)}的别名方法。<br>
|
|
|
+ * 相同的条件有两个,满足其一即可:<br>
|
|
|
+ * <ol>
|
|
|
+ * <li>obj1 == null && obj2 == null</li>
|
|
|
+ * <li>obj1.equals(obj2)</li>
|
|
|
+ * <li>如果是BigDecimal比较,0 == obj1.compareTo(obj2)</li>
|
|
|
+ * </ol>
|
|
|
+ *
|
|
|
+ * @param obj1 对象1
|
|
|
+ * @param obj2 对象2
|
|
|
+ * @return 是否相等
|
|
|
+ * @see #equal(Object, Object)
|
|
|
+ * @since 5.4.3
|
|
|
+ */
|
|
|
+ public static boolean equals(Object obj1, Object obj2) {
|
|
|
+ return equal(obj1, obj2);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 比较两个对象是否相等。<br>
|
|
|
* 相同的条件有两个,满足其一即可:<br>
|
|
|
* <ol>
|
|
|
* <li>obj1 == null && obj2 == null</li>
|
|
|
* <li>obj1.equals(obj2)</li>
|
|
|
+ * <li>如果是BigDecimal比较,0 == obj1.compareTo(obj2)</li>
|
|
|
* </ol>
|
|
|
- * 1. obj1 == null && obj2 == null 2. obj1.equals(obj2)
|
|
|
*
|
|
|
* @param obj1 对象1
|
|
|
* @param obj2 对象2
|
|
|
@@ -37,7 +57,9 @@ public class ObjectUtil {
|
|
|
* @see Objects#equals(Object, Object)
|
|
|
*/
|
|
|
public static boolean equal(Object obj1, Object obj2) {
|
|
|
- // return (obj1 != null) ? (obj1.equals(obj2)) : (obj2 == null);
|
|
|
+ if(obj1 instanceof BigDecimal && obj2 instanceof BigDecimal){
|
|
|
+ return NumberUtil.equals((BigDecimal)obj1, (BigDecimal)obj2);
|
|
|
+ }
|
|
|
return Objects.equals(obj1, obj2);
|
|
|
}
|
|
|
|