Java で「static transient」フィールドを宣言できることがわかりました。コンパイラは文句を言いません。私たち全員が知っているように、静的フィールドはシリアル化されていないため、これはまったく役に立たないようです。
しかし、「静的トランジェント」フィールドが役立つケースは実際にあるのでしょうか?
Java で「static transient」フィールドを宣言できることがわかりました。コンパイラは文句を言いません。私たち全員が知っているように、静的フィールドはシリアル化されていないため、これはまったく役に立たないようです。
しかし、「静的トランジェント」フィールドが役立つケースは実際にあるのでしょうか?
いいえ-あなたは自分で言った、静的フィールドはシリアル化されていません。
ただし、コンパイラがそれを可能にするのはちょっと奇妙です。
ほとんどの場合、役に立ちません。実際、静的フィールドはデフォルトのシリアライザーによってシリアライズされません。
ただし、static
transient
フィールドは反射によって検出できます。誰かが独自のシリアライザーを作成し、静的フィールドもシリアライズしたい場合、キーワードを考慮して、その特定のフィールドのシリアライズをスキップする可能性があります。transient
PS: この回答は完全を期すために投稿されており、 Peter Lawrey のコメントに基づいています。彼の功績。