2

経由でデータを送信するために socketserver を使用していますObjectOutputStream。標準の Java オブジェクトでは問題なく動作しますが、カスタム オブジェクトを送信できません。私は得る

java.io.NotSerializableException: MyObject.

シリアル化については何も知りませんが、Eclipse がそう言ったところで実行しました。また、どこでも削除しようとしましたが、何も役に立ちません。私のオブジェクトは他のカスタム抽象クラスから継承されていますが、まだ他のカスタム オブジェクトに対してテストしていません。

4

1 に答える 1

8

オブジェクトは を実装する必要がありますSerializable。「カスタム」抽象クラスもシリアライズ可能でなければなりません。抽象クラスを変更できない (つまり、制御できない) 場合は、次のことが適用されます。

シリアル化できないクラスのサブタイプをシリアル化できるようにするために、サブタイプは、スーパータイプの public フィールド、protected フィールド、および (アクセス可能な場合) package フィールドの状態を保存および復元する責任を負う場合があります。サブタイプは、それが拡張するクラスに、クラスの状態を初期化するためのアクセス可能な引数なしのコンストラクターがある場合にのみ、この責任を負うことができます。そうでない場合、Serializable クラスを宣言するとエラーになります。エラーは実行時に検出されます。

あなたの文について:

シリアライズについて何も知らない

次に、行って調査を行うことをお勧めします... 読むことから始めます。

于 2012-06-10T02:53:48.450 に答える