fastjson默认序列化File对象死循环堆栈溢出

qnakjoqk  于 2021-11-27  发布在  Java
关注(0)|答案(1)|浏览(517)

如果File存在,那么getAbsoluteFile就会生效,fastjson把它当成一个属性去序列化,结果就不停的序列化File对象,导致堆栈溢出。

这个不算bug吧,可以通过用户自定义解决,但是File类很常用,每次都自定义,还不如fastjson默认如果是file类型,直接返回他的tostring呢。

nnt7mjpx

nnt7mjpx1#

序列化很多类都会杯具,循环检测并不靠谱,记得之前序列化class对象就会杯具。这种最好由用户自定义,因为可能杯具的类太多了,框架不可能都一一枚举出来,现在的黑名单地狱就是最好的例子~正常来说DTO不会需要序列化File这种东西,真要序列化,也不会把里面所有属性都给序列化出来,而是变成url字符串。但具体弄成什么样的url大家需求很难统一,有些情况绝对地址好,有些情况相对地址好

相关问题