Javaには、恐ろしくエラーが発生しやすい インターフェイスSerializable
を実装する多くのクラス(Swingなど)が含まれています。
たとえば、TableModel
拡張によってnewを実装する場合AbstractTableModel
、新しいモデルはシリアル化可能である必要がありますが、この機能を使用する予定がないため、シリアル化可能ではなく、シリアル化可能である必要のない内部データ型が含まれている場合はどうなりますか?
そのような場合、 Sonarのようなツールはおかしくなります。Foo
どちらも「クラスは非一時的でシリアル化できないインスタンスフィールドを定義する」と不平を言いますbar
。
だから私はtransient
「フィールドFoo.bar
は一時的ですが、デシリアライズによって設定されていません」を得るためにそのフィールドを作成します
Sonarのようなツールでエラーが発生しないように、「いいえ、このクラスはシリアル化できません。シリアル化したくない」と言うことはできますか?