|
@@ -1,5 +1,7 @@
|
|
|
package com.persagy.ibms.data.sdk.util;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.math.BigInteger;
|
|
|
import java.util.Iterator;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
@@ -133,10 +135,18 @@ public class FastJsonCompareUtil {
|
|
|
|
|
|
boolean result = false;
|
|
|
if (value1.getClass() == value2.getClass()) {
|
|
|
- if (value1 instanceof Long && value2 instanceof Long) {
|
|
|
+ if (value1 instanceof Integer && value2 instanceof Integer) {
|
|
|
+ result = ((Integer) value1).intValue() == ((Integer) value2).intValue();
|
|
|
+ } else if (value1 instanceof Long && value2 instanceof Long) {
|
|
|
result = ((Long) value1).longValue() == ((Long) value2).longValue();
|
|
|
+ } else if (value1 instanceof BigInteger && value2 instanceof BigInteger) {
|
|
|
+ result = ((BigInteger) value1).longValue() == ((BigInteger) value2).longValue();
|
|
|
+ } else if (value1 instanceof Float && value2 instanceof Float) {
|
|
|
+ result = Math.abs(((Float) value1).floatValue() - ((Float) value2).floatValue()) < 0.00000001;
|
|
|
} else if (value1 instanceof Double && value2 instanceof Double) {
|
|
|
result = Math.abs(((Double) value1).doubleValue() - ((Double) value2).doubleValue()) < 0.00000001;
|
|
|
+ } else if (value1 instanceof BigDecimal && value2 instanceof BigDecimal) {
|
|
|
+ result = Math.abs(((BigDecimal) value1).doubleValue() - ((BigDecimal) value2).doubleValue()) < 0.00000001;
|
|
|
} else if (value1 instanceof Boolean && value2 instanceof Boolean) {
|
|
|
result = ((Boolean) value1).booleanValue() == ((Boolean) value2).booleanValue();
|
|
|
} else if (value1 instanceof String && value2 instanceof String) {
|