web-dev-qa-db-ja.com

Java:静的一時フィールド

Javaフィールド 'statictransient'を宣言できます-コンパイラは文句を言いません。静的フィールドはシリアル化されていないため、これはまったく役に立たないようです。ご存知のとおり。

しかし、実際には「静的過渡」フィールドが役立つ場合があるのでしょうか。

45
python dude

いいえ、あなたはそれを自分で言いました、静的フィールドはシリアル化されていません。

コンパイラがそれを可能にするのはちょっと奇妙です。

17
Peter C

ほとんどの場合、それは役に立ちません。実際、静的フィールドはデフォルトのシリアライザーではシリアル化されません。

ただし、statictransientフィールドはリフレクションを介して検出できます。誰かが独自のシリアライザーを作成し、静的フィールドもシリアル化したい場合は、mighttransientキーワードを考慮して、スキップします。その特定のフィールドのシリアル化。

PS:この回答は完全を期すために投稿されており、 Peter Lawreyのコメント に基づいています。彼へのクレジット。

12
MC Emperor