在java
的{{1}}实施中,为什么java.awt.Button
对象被标记为瞬态?
来自impl:ActionListener
答案 0 :(得分:2)
transient
中的Java
关键字用于表示不应序列化字段。
变量可能被标记为瞬态,表示它们不属于对象的持久状态。
此处,ActionListener
实例是适合的候选者,用于标记为 transient 。我们没有任何目的坚持下去。当类实现Serializable时我们使用transient
关键字,我们不希望该成员被持久化。我们将其标记为transient
字段。
除此之外,java.awt.Button
是java.awt.Component
的子类,它实现了Serializable
接口。因此,要限制Button实例的actionListener
成员的序列化。 actionListener 字段标记为 transient 。希望你理解
答案 1 :(得分:1)
添加了关键字transient
,以禁止正常的序列化:相反,该字段的序列化在readObject
和writeObject
中完成。
原因是使用AWTEventMulticaster
来构建事件侦听器的结构。 readObject和writeObject方法也将actionListener的序列化委托给该类。