java – 序列化一个具有不可序列化的父类的对象

以下代码如何工作?
class A {
         int a = 10;
     }


     class B extends A implements Serializable{

      }



     public class Test {
       public static void main(String[] args){
        B obj = new B();
        obj.a = 25;


        //Code to serialize object B  (B b= new B()),// deserialize it and print the value of 'a'. 
      }
    }

即使我在代码中更改了’a’的值,代码也会打印10.

任何解释这个行为?

解决方法

a的认值为10 – 创建对象时将设置为10.如果要进行实际测试,请在实例化后将其设置为不同的值,然后将其序列化.

至于你的更新 – 如果一个类是不可序列化的,它的字段不会被序列化和反序列化.只有序列化子类的字段.

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...