zoukankan      html  css  js  c++  java
  • java.io.NotSerializableException

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

    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

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

  • 相关阅读:
    ZOJ 2158 Truck History
    Knight Moves (zoj 1091 poj2243)BFS
    poj 1270 Following Orders
    poj 2935 Basic Wall Maze (BFS)
    Holedox Moving (zoj 1361 poj 1324)bfs
    ZOJ 1083 Frame Stacking
    zoj 2193 Window Pains
    hdu1412{A} + {B}
    hdu2031进制转换
    openjudge最长单词
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4777576.html
Copyright © 2011-2022 走看看