首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JSON 反序列化 Long 变 Integer 或 Double 问题

一、背景 工作中可能会遇到对 Map 进行 JSON 序列化,其中值中包含 Long 类型的数据,反序列化后强 Long 时报类型转换异常的问题。...=class java.lang.Double key:aLong,value=2.0,valueClass=class java.lang.Double --- jackson ----- key:aInteger...,valueClass=class java.lang.Double --- jackson ----- key:aInteger,value=1,valueClass=class java.lang.Integer...=class java.lang.Integer key:aFLoat,value=0.1,valueClass=class java.lang.Double fastjson 中 Float 被解析为...Redis 中,然后反序列化后,将原本 Long 类型的值,强转为 Long 导致线上出现BUG(前面讲到,这种情况下使用 fastjson 时,如果值小于整数最大值,反序列化为 Integer 类型,强必然会报错

3.2K30
您找到你想要的搜索结果了吗?
是的
没有找到

BeanCopier_contabo测评

Introspector)获取源类型的属性信息 判断源类型的属性是否可读及目标类型的属性是否可写 可读 有getter方法 可写 有setter方法 进行复制 获取属性名 获取属性类型 进行属性值类型...and java.lang.Boolean byte and java.lang.Byte char and java.lang.Character java.lang.Class double and java.lang.Double...float and java.lang.Float int and java.lang.Integer long and java.lang.Long short and java.lang.Short...Spring.BeanUtils Cglib.BeanCopier MapStruct EZMorph ---- 总结 根据不同工具的性能及功能维度,个人建议当对象转换操作较少或者应用对性能要求较高时,尽量采用工具...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

73520

介绍一下java的基本类型; 每种数据类型的位数(答错了,太菜了)

应该就是基础扎实了。 ? 一、Java的基本类型主要分为整数型,浮点型,字符型,布尔型。 ?.../ int System.out.println("基本类型:int 二进制位数:" + Integer.SIZE); System.out.println("包装类:java.lang.Integer...double System.out.println("基本类型:double 二进制位数:" + Double.SIZE); System.out.println("包装类:java.lang.Double...:16 包装类:java.lang.Short 最小值:Short.MIN_VALUE=-32768 最大值:Short.MAX_VALUE=32767 基本类型:int 二进制位数:32 包装类:java.lang.Integer...java.lang.Float 最小值:Float.MIN_VALUE=1.4E-45 最大值:Float.MAX_VALUE=3.4028235E38 基本类型:double 二进制位数:64 包装类:java.lang.Double

54020

Map接收参数,Long类型降级为Integer,报类型转换异常

即 (Long)参数 ,但是却发生了类型转换异常,报错信息如下: class java.lang.Integer cannot be cast to class java.lang.Long (java.lang.Integer...java.lang.Long cannot be cast to java.lang.Integer 异常,至此问题就还原出来了。...为什么强后会报错?...强的一些条件: 低阶高阶可以直接; 高阶低阶需要强制转换,否则报错; 强 null 值报错; 包装类型数据不支持直接跨类型强; 其实报错的原因就是这最后一条,包装类型是不支持直接跨类型强的...,比如,你可以使用 Integer 跟 int 的直接转换,但是你不能将 Integer 直接强转成 Long 类型,或者 Long 类型强 Integer ,这样都是报错的。

3.9K40

【后端】ObjectString的4种方法

或者int 先将 Object 类型转换为 string,再将 string 转换为 long/int ---- 【1/4】Object.toString() ①object不能为null,否则会报nullpointexception...要是转为String的时候,如果字符串的内容是数字的话,这样就会报强异常 指路 : 【异常】java.lang.Integer cannot be cast to java.lang.String_HolaOrange...以后就这么干 : 先将 Object 类型转换为 string,再将 string 转换为 long/int 至于用toString()还是String.valueOf(object)根据上文阐述按自己需求选...如果参数为null, 返回字符串”null” 勾勾的ObjectString 一篇带给你ObjectString-51CTO.COM 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

1.4K20

Java基础(5)-Java数据类型

byte 数据类型是8位、有符号的,以二进制补码表示的整数; 当用户从网络或文件中处理数据流时,或者处理可能与 Java 的其他内置类型直接兼容的未加工的二进制数据时,该类型非常有用。.../ int System.out.println("基本类型:int 二进制位数:" + Integer.SIZE); System.out.println("包装类:java.lang.Integer...double System.out.println("基本类型:double 二进制位数:" + Double.SIZE); System.out.println("包装类:java.lang.Double...:16 包装类:java.lang.Short 最小值:Short.MIN_VALUE=-32768 最大值:Short.MAX_VALUE=32767 基本类型:int 二进制位数:32 包装类:java.lang.Integer...空引用(null)可以转换为任何引用类型。在实际开发中,可以忽略 null 类型,假定 null 只是引用类型的一个特殊直接量。

44020

Java 之数据类型

java.lang.Byte  short                        java.lang.Short  int                          java.lang.Integer...                         java.lang.Long  float                        java.lang.Float  double                       java.lang.Double...将基本数据类型转换为其包装类还可以通过包装类的构造方法进行转换,例如将int型整数129换为Integer类型: Integer num=new Integer(129) 各包装类所具有的xxxValue..., 不能将C类型强制转换为B类型 如果声明了一个父类型的变量,但使其引用子类对象,在编译时,Java编译器是根据变量被显示声明的类型去编译,因此该变量的类型被看作父类类型,所以将其进行强制类型转换并赋给引用了另一个子类对象的变量时...但在运行时将抛出java.lang.ClassCastException异常,因为这个变量实际引用的是子类对象,两个子类属于不同的类型,也没有继承关系,所以不能将一个子类强制转换为另一个子类。

95130
领券