java.io.NotSerializableExceptionを取得しています。外部APIからのオブジェクトのシリアル化
java.io.Serializable
を実装していないオブジェクトをシリアル化するにはどうすればよいですか?
ストリームでシリアル化したいと思います。
外部APIからオブジェクトをシリアル化する必要があります。このAPIを変更することはできません。
は外部APIで、このオブジェクトは、プライベートフィールドがあるjava.io.Serializable
確かに実装されていませんが、getterおよびsetterメソッドがたくさんあります。 public staticフィールドがあり、引数なしのコンストラクタはありません。実際にコンストラクタはありません。
シリアル化するのは難しいと思いますか? 提案がありますか?
問題は、このExternalAPIClassもシリアル化できないオブジェクトを使用することです。 – Jvrq
問題は、このExternalAPIClassはシリアル化できないオブジェクトも使用することです。このAnotherEXternalAPIClassもオーバーライドする必要がありますか? – Jvrq
その場合、スーパークラスの非シリアライズ可能な部分は、あなたの子クラス(MyClass)からアクセス可能で、それらの部分のカスタムシリアル化のための独自のメソッドを書くことができます。また、その場合、スーパークラス(ExternalAPIClass)にはデフォルトの引数なしコンストラクタが必要です。 writeObject()とreadObject()を実装し、これらの非直列化可能フィールドの手動による直列化/逆シリアル化を行います。 –