Эх сурвалжийг харах

update 更新 BigNumberSerializer 注释

疯狂的狮子li 3 жил өмнө
parent
commit
d29a7adc9a

+ 16 - 3
ruoyi-framework/src/main/java/com/ruoyi/framework/jackson/BigNumberSerializer.java

@@ -7,11 +7,23 @@ import com.fasterxml.jackson.databind.ser.std.NumberSerializer;
 
 import java.io.IOException;
 
+/**
+ * 超出 JS 最大最小值 处理
+ *
+ * @author Lion Li
+ */
 @JacksonStdImpl
 public class BigNumberSerializer extends NumberSerializer {
 
-	private static final long JS_NUM_MAX = 9007199254740992L;
-	private static final long JS_NUM_MIN = -9007199254740992L;
+	/**
+	 * 根据 JS Number.MAX_SAFE_INTEGER 与 Number.MIN_SAFE_INTEGER 得来
+	 */
+	private static final long MAX_SAFE_INTEGER = 9007199254740991L;
+	private static final long MIN_SAFE_INTEGER = -9007199254740991L;
+
+	/**
+	 * 提供实例
+	 */
 	public static final BigNumberSerializer INSTANCE = new BigNumberSerializer(Number.class);
 
 	public BigNumberSerializer(Class<? extends Number> rawType) {
@@ -20,7 +32,8 @@ public class BigNumberSerializer extends NumberSerializer {
 
 	@Override
 	public void serialize(Number value, JsonGenerator gen, SerializerProvider provider) throws IOException {
-		if (value.longValue() >= JS_NUM_MIN && value.longValue() <= JS_NUM_MAX) {
+		// 超出范围 序列化位字符串
+		if (value.longValue() > MAX_SAFE_INTEGER && value.longValue() < MIN_SAFE_INTEGER) {
 			super.serialize(value, gen, provider);
 		} else {
 			gen.writeString(value.toString());