transient キーワードの機能は次のとおりです。transient によって変更された変数はシリアル化と逆シリアル化には関与しません。オブジェクトがシリアル化されると、一時変数の値はシリアル化された表現に含まれませんが、非一時変数は含まれます。
このチュートリアルの動作環境: Windows7 システム、Java10 バージョン、Dell G3 コンピューター。
(学習ビデオ共有: java 教育ビデオ )
Java のシリアル化は、オブジェクト インスタンスを永続化するためのメカニズムを提供します。オブジェクトを永続化する場合、シリアル化メカニズムを使用して保存したくない特殊なオブジェクト データ メンバーが存在する場合があります。
特定のオブジェクトのフィールドのシリアル化をオフにするには、このフィールドの前にキーワード transient を追加します。
オブジェクトがシリアル化されると、一時変数の値はシリアル化された表現に含まれませんが、非一時変数は含まれます。
つまり、transient によって変更された変数はシリアル化と逆シリアル化には関与しません。
次に、コードを使用してそれを証明します。 Serializable インターフェイスを実装する新しい Student クラスを作成し、その toString メソッドを書き換えて結果を観察しやすくします。 年齢属性はトランジェントによって変更されませんが、名前属性はトランジェントによって変更されます。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
が一時変数によって変更されたことを示しています。シリアル化と逆シリアル化には参加しません。
# 例外はありますか?Java には 2 つのシリアル化メソッドがあることがわかっています。
1. Serializable インターフェイスを実装します。
2. 外部化可能なインターフェイスを実装します。
外部化可能なインターフェイスはシリアル化可能なインターフェイスのサブクラスです。
ソース コードは次のとおりです。
1 2 3 4 5 6 7 |
|
このインターフェイスの 2 つのメソッドは、クラス内のどの属性をシリアル化するかを指定できます。
このインターフェイスを使用する場合、プロパティが一時的に変更されるかどうかに関係なく、
デフォルトではプロパティはシリアル化されません。したがって、Externalizable インターフェイス
を実装するクラスは、通常、一時的な変更属性を使用しなくなりました。
概要:
1. トランジェントによって変更された変数は、シリアル化と逆シリアル化には関与しません
#2. Transient は通常、Serializable インターフェイスを実装するクラスで使用されます。 プログラミング関連の知識について詳しくは、
プログラミング教育以上が一時的なキーワードの役割は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。