[英]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
接口。 嘗試序列化此類的實例時,將有一個異常。
直接來自Serializable的javadoc :
遍歷圖形時,可能會遇到不支持Serializable接口的對象。 在這種情況下,將拋出NotSerializableException並標識不可序列化對象的類。
Java將嘗試對其進行序列化,看看它不是Serializable
,並拋出NotSerializableException
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.