以下代码如何工作?
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.@H_404_5@
任何解释这个行为?@H_404_5@
解决方法
a的默认值为10 – 创建对象时将设置为10.如果要进行实际测试,请在实例化后将其设置为不同的值,然后将其序列化.
至于你的更新 – 如果一个类是不可序列化的,它的字段不会被序列化和反序列化.只有序列化子类的字段.@H_404_5@