簡體   English   中英

如果我沒有在Java中將不可序列化的字段標記為瞬態怎么辦?

[英]What happens if i don't mark a non-serializable field as transient in 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
         }

此處的動畫師是否未標記為瞬態? 它會繼續存在嗎?

否,因為線程未實現Serializable接口。 嘗試序列化此類的實例時,將有一個異常。

直接來自Serializablejavadoc

遍歷圖形時,可能會遇到不支持Serializable接口的對象。 在這種情況下,將拋出NotSerializableException並標識不可序列化對象的類。

Java將嘗試對其進行序列化,看看它不是Serializable ,並拋出NotSerializableException

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM