美文网首页
jdk序列化失败

jdk序列化失败

作者: 多关心老人 | 来源:发表于2019-08-06 01:20 被阅读0次

对象通过jdk序列化方式保存,报错:Not Serializable XXX$1,$1是个匿名内部类,要序列化的对象里没有属性是这个匿名类型的,而且$1是不应该序列化的,可是为什么会序列化到它呢?

原来同事写代码用到了guava的Lists.transform(),这里面接收一个Function对象,返回TransformingRandomAccessList对象,返回的这个TransformingRandomAccessList是List的一个实现,而这个list返回结果正好被赋给了要序列化的对象的一个属性上。如果TransformingRandomAccessList是类似于ArrayList这种可序列化的容器也没什么问题,这个List里面有2个属性:fromList和function,其中function就是前面的XXX$1,这个匿名内部类没有实现Serializable,因此序列化失败。

我们发现jdk自带的很多容器类都实现了Serializable接口,就是为了能够序列化。

相关文章

  • jdk序列化失败

    对象通过jdk序列化方式保存,报错:Not Serializable XXX$1,$1是个匿名内部类,要序列化的对...

  • 关于WebLogic Server WLS 组件存在远程命令执行

    上周,我们公布了JDK XmlDecoder反序列化这一漏洞(jdk紧急漏洞,XMLDecoder反序列化攻击),...

  • Java 序列化之 Externalizable

    相关文章: Java 序列化 之 Serializable JDK中除了提供 Serializable 序列化接口...

  • Java常用序列化方式

    常用序列化方式 jdk自带对象序列化 对象需要实现Serializable接口 通过ObjectOutputStr...

  • rabbitmq采坑记

    rabbitmq序列化 生产者序列化 ,默认是jdk序列化 消费者序列化,不写的话,只能用字节数组接收,不能转换成...

  • java序列化框架对比

    目录 jdk 自带对象序列化类ObjectInput(Out)Stream 1.无法跨语言。这应该是java序列化...

  • java序列化框架对比

    目录 jdk 自带对象序列化类ObjectInput(Out)Stream 1.无法跨语言。这应该是java序列化...

  • JDK 序列化

    序列化和分序列化概念 什么是序列化和反序列化 Java序列化是指把Java对象转换为字节序列的过程,而Java反序...

  • Java常见笔试面试题(持续更新中)

    Java基础 jdk和jre 介绍区别使用的jdk工具 生成对象 new反射反序列化cloneString str...

  • Serializable和Parcelable

    Serializable JDK提供序列化的标记接口,主要用于对象的持久化存储和网络传输。通过反射序列化,过程中产...

网友评论

      本文标题:jdk序列化失败

      本文链接:https://www.haomeiwen.com/subject/ubjbdctx.html