このブログでは、Java での「transient」キーワードの使用法と実装について詳しく説明します。
Javaの「transient」キーワードとは何ですか?
ジャバ「 一時的な 「キーワードは回避するために利用されます」 連載 」。データ構造のオブジェクトが一時的に割り当てられている場合、それはシリアル化されないことを意味します。特定の変数が一時的に割り当てられている場合、ファイルに書き込むことができず、「 0 」が代わりに格納されます。
構文
プライベート 一時的な < メモリー変数 >;
この構文では、「 メモリー変数 」は、「として割り当てられた変数を指します。 一時的な 」。
例に進む前に、「 シリアライズ可能 」 インターフェイスを使用して、すべてのクラスとメソッドにそれぞれアクセスします。
輸入 java.io.Serializable ;
輸入 java.io.* ;
Java の「transient」キーワードのデモ
次の例では、「 一時的な ” キーワードは、オブジェクトに渡された値をファイルに書き込めないように、変数に関連付けることができます。
公共 クラス トランジェントキー 実装します シリアライズ可能 {弦 名前 ;
弦 街 ;
一時的な 整数 年 ;
トランジェントキー ( 弦 名前、 弦 街、 整数 年 ) {
これ . 名前 = 名前 ;
これ . 街 = 街 ;
これ . 年 = 年 ;
}
上記のコード行に従って、以下に示す手順を適用します。
- まず、「」という名前のクラスを定義します。 トランジェントキー 」を実装する「 シリアライズ可能 」 クラス オブジェクトをシリアライズ可能にし、オブジェクトの変換をファイル形式で保存できるようにします。
- クラス定義では、記述された変数を「 年 」 として割り当てられた 一時的な 」。
- ここで、指定された変数と同一の指定されたパラメーターを持つクラス コンストラクターを作成します。
- コンストラクタ定義では、指定された変数を参照し、「」を介してパラメータ値を割り当てます。 これ 」。
では、「 主要 ' コードスニペット:
公共 静的 空所 主要 ( 弦 引数 [ ] ) スロー 例外 {一時キー オブジェクト = 新しい トランジェントキー ( 「ハリー」 、 「ロンドン」 、 22 ) ;
FileOutputStream ファイルアウト = 新しい FileOutputStream ( 「デフォルトファイル.txt」 ) ;
ObjectOutputStream objOut = 新しい ObjectOutputStream ( ファイルアウト ) ;
objOut. writeObject ( 物体 ) ;
objOut. 流す ( ) ;
objOut. 近い ( ) ;
ファイルアウト。 近い ( ) ;
システム . 外 . println ( 「データ保存成功!」 ) ;
ObjectInputStream ファイル = 新しい ObjectInputStream ( 新しい FileInputStream ( 「デフォルトファイル.txt」 ) ) ;
transientkey readData = ( トランジェントキー ) ファイル。 readObject ( ) ;
システム . 外 . println ( readData. 名前 + ' ' + readData. 街 + ' ' + readData. 年 + '' ) ;
ファイル。 近い ( ) ;
} }
の中に ' 主要 」では、以下の手順を検討してください。
- 「」を介してクラスオブジェクトを作成します 新しい ”キーワードと” トランジェントキー() 」 コンストラクターをそれぞれ呼び出し、指定された値をコンストラクター引数として渡します。
- 次のステップでは、「 FileOutputStream 」 渡されたデータを指定された場所に書き込むオブジェクト ファイル .
- その後、同様に「 ObjectOutputStream 」 オブジェクトで読み取ることができるオブジェクトを書き込む ObjectInputStream 」。
- 今、「 writeObject() 」メソッドを使用して、指定されたクラス オブジェクトを「 ObjectOutputStream 」。
- ストリームをフラッシュして閉じるには、「 流す() ' と ' 近い() 」メソッド、それぞれ。
- ファイルを読み取るには、「 ObjectInputStream 」 オブジェクトを作成し、書き込まれたファイルを「 FileInputStream 」パラメータから入力バイトを取得します ファイル .
- 最後に、作成したクラスオブジェクトを参照してファイルの内容を読み込みます」 トランジェントキー 」。
- アルゴリズム: オブジェクトに渡された値は、「 一時的な 」。ファイルを読み取ると、すべての値が取得されますが、一時的な値は「 0 」。
コード全体
公共 クラス トランジェントキー 実装します シリアライズ可能 {弦 名前 ;
弦 街 ;
一時的な 整数 年 ;
トランジェントキー ( 弦 名前、 弦 街、 整数 年 ) {
これ . 名前 = 名前 ;
これ . 街 = 街 ;
これ . 年 = 年 ;
}
公共 静的 空所 主要 ( 弦 引数 [ ] ) スロー 例外 {
一時キー オブジェクト = 新しい トランジェントキー ( 「ハリー」 、 「ロンドン」 、 22 ) ;
FileOutputStream ファイルアウト = 新しい FileOutputStream ( 「デフォルトファイル.txt」 ) ;
ObjectOutputStream objOut = 新しい ObjectOutputStream ( ファイルアウト ) ;
objOut. writeObject ( 物体 ) ;
objOut. 流す ( ) ;
objOut. 近い ( ) ;
ファイルアウト。 近い ( ) ;
システム . 外 . println ( 「データ保存成功!」 ) ;
ObjectInputStream ファイル = 新しい ObjectInputStream ( 新しい FileInputStream ( 「デフォルトファイル.txt」 ) ) ;
transientkey readData = ( トランジェントキー ) ファイル。 readObject ( ) ;
システム . 外 . println ( readData. 名前 + ' ' + readData. 街 + ' ' + readData. 年 + '' ) ;
ファイル。 近い ( ) ;
} }
出力
上記の結果では、「 年 」は「 一時的な 」、したがって、その値はファイルに書き込まれず、それに応じて取得されません。つまり、「 0 」。
作成したファイル
作成されたファイルが以下に表示されます。
以上が、Java での transient キーワードの使用法に関するものでした。
結論
特定の変数が「 一時的な 」、ファイルに書き込むことができず、「 0 」が代わりに格納されます。この記事では、「 一時的な 」 Java のキーワード。