53

Java で「static transient」フィールドを宣言できることがわかりました。コンパイラは文句を言いません。私たち全員が知っているように、静的フィールドはシリアル化されていないため、これはまったく役に立たないようです。

しかし、「静的トランジェント」フィールドが役立つケースは実際にあるのでしょうか?

4

2 に答える 2

18

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

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

于 2010-12-30T19:37:58.953 に答える
17

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

ただし、static transientフィールドは反射によって検出できます。誰かが独自のシリアライザーを作成し、静的フィールドもシリアライズしたい場合、キーワードを考慮して、その特定のフィールドのシリアライズをスキップする可能性があります。transient

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

于 2015-09-15T09:18:03.767 に答える