结果发现序列不成功非静态内部类时的序列中,出现以下异常:

java.io.NotSerializableException: com.tang.sharedpreferencesdemo.MainActivity

W/System.err( 2356):     at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1364)

W/System.err( 2356):     at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1671)

W/System.err( 2356):     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1517)

W/System.err( 2356):     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1481)

W/System.err( 2356):     at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:979)

W/System.err( 2356):     at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:368)

经查资料和分析知道:

假设一个可序列化的对象包括对某个不可序列化的对象的引用,那么整个序列化操作将会失败,而且会抛出一个NotSerializableException.

非静态内部类拥有对外部类的全部成员的全然訪问权限,包含实例字段和方法。为实现这一行为,非静态内部类存储着对外部类的实例的一个隐式引用。序列化时要求全部的成员变量是Serializable,如今外部的类并没有implements Serializable,所以就抛出java.io.NotSerializableException异常。

解决的方法:

1.将内部类写成静态的

2.将内部类单独写一个.java档 implements Serializable

版权声明:本文博主原创文章。博客,未经同意不得转载。

最新文章

  1. csdn 泄露用户密码害人不浅啊。
  2. 基于jquery的相册预览gallery
  3. VML/SVG在Web开发中一些常见的框架
  4. HDU 5512 Pagodas (2015沈阳现场赛,找规律+gcd)
  5. 订阅基础:RSS、ATOM、FEED、聚合、供稿、合烧与订阅
  6. Oracle数据库 ORA-01555 快照过旧 (undo表空间:撤销表空间)
  7. android之PackageManager简单介绍
  8. Linux环境变量配置的三个方法--/etc/profile,~/.bashrc,shell
  9. ReactNative 基础学习
  10. sql 服务启动失败 SQL Server(MSSQLSERVER) 错误码126
  11. jQuery标签插件tagsinput.js
  12. TeamCity安装
  13. Spring boot+ logback环境下,日志存放路径未定义的问题
  14. Django之Form进阶
  15. [JSOI2004]平衡点/[BZOJ3680]吊打XXX
  16. 【Python045-魔法方法:属性访问】
  17. MySQL check table/optimize table/analyze table/REPAIR TABLE
  18. MsChart<3> 饼状图
  19. 监控服务器所有用户的操作记录(测试只记录root用户)
  20. BZOJ2738:矩阵乘法——题解

热门文章

  1. Inno Setup打包添加和去除管理员权限
  2. 【译】ASP.NET MVC 5 教程 - 5:使用 SQL 服务器 LocalDB 创建连接字符串
  3. hdu2222Keywords Search (特里)
  4. SWT中的GridLayout(转)例子不错
  5. Linux下将UTF8编码批量转换成GB2312编码的方法
  6. Windows phone 8 学习笔记(6) 多任务
  7. ASP.NET关于Login控件使用,LoginView 控件,CreateUserWizard 控件
  8. ThinkPHP的全部配置选项
  9. Java实现字符全阵列阵列
  10. Git代理服务器设置和访问Github