如果我没有在Java中将不可序列化的字段标记为瞬态怎么办?

Rek*_*kha 2 java

public class PersistentAnimation implements Serializable, Runnable
         {
         private Thread animator;
         private int animationSpeed;
         public PersistentAnimation(int animationSpeed)
        {
         this.animationSpeed = animationSpeed;
        animator = new Thread(this);
           }
               public void run()
          {
             while(true)
            {
               // do animation here
         }
Run Code Online (Sandbox Code Playgroud)

此处的动画师是否未标记为瞬态?它会继续存在吗?

JB *_*zet 5

否,因为Thread不实现该Serializable接口。尝试序列化此类的实例时,将有一个异常。

直接来自Serializablejavadoc

遍历图形时,可能会遇到不支持Serializable接口的对象。在这种情况下,将抛出NotSerializableException并标识不可序列化对象的类。