zoukankan      html  css  js  c++  java
  • NotSerializableException解决方法

    NotSerializableException

    问题描述:
    想要写入对象的时候的时候回抛出NotSerializableException:类名

    原因:
    写入的对象没有序列化,即没有实现java.io.Serializable接口

    解决方法:
    将要被写出对象的类序列化,可以不设置序列号,这时由系统自动设置,也可以自己设置序列号
    设置方法:

     private static final long serialVersionUID = xxxxxx;////xxxx看自己喜欢

    系统自动生成的序列号serialVersionUID是根据类名,接口名,方法和属性等来生成的
    所以只要更改了类中的属性、方法、各种名称就会使序列号发生变化,这时想要读取未改动类的时候的本地对象就会失败,因为读取的时候和卸写入的时候序列号不一样。

    所以不想修改类之后这么麻烦,就会定义一个序列号

    注意:
    一、被static和transient(瞬间)修饰的字段或方法都是不被序列化的,也就是保存到本地和从本地读取的时候都不会操作这个东西

    二、类中引用到的其他类的对象也需要序列化,比如如果类中用了ObjectOutputStream的话,会抛出NotSerializableException:java.io.ObjectOutputStream,意思是类ObjectOutputStream没有序列化

  • 相关阅读:
    Screen-后台运行
    Env:ctags和Taglist安装与配置
    Env:Cscope安装与配置
    Env:VIM配置
    Env:zsh和fish安装和使用
    UIWebView与JS的深度交互-b
    利用Multipeer Connectivity框架进行WiFi传输-b
    iOS上绘制自然的签名-b
    1行代码为每个Controller自定义“TabBar”-b
    视频边下边播--缓存播放数据流-b
  • 原文地址:https://www.cnblogs.com/wewill/p/5588754.html
Copyright © 2011-2022 走看看