2012-04-29 18 views
-4

NotSerializableExceptionがあります.jvmは、ObjectOutputStreamにシリアル化されているものとはまったく関係のないクラスから来ていると私に伝えています。java serializable NotSerializableException

何が起こっている可能性がありますか?問題として記述されているクラスは直列化可能ではなく、他のクラスからのデータを操作します。これは最も確実に直列化可能ですが、なぜ地球上でNotSerializableExceptionになるのでしょうか?

編集: これは深刻な問題ですか? それでは、次のことが問題になるかどうか疑問に思っています:マップに挿入されている匿名のarraylist(シリアライズ可能であることが最も確実です)、シリアライズできないクラスでは、問題????

ようなので:map.put(新しいArrayListを(){{(ECT ....}追加});シリアライズである必要

+3

を作ることです〜へシリアライズする(コードを投稿する)? – Jeffrey

+1

シリアル化するクラスのフィールドもシリアル化可能でなければなりません。 –

+0

これは問題ではありません!私はクラスをシリアライズすることは全くありませんでした!私はちょうど別のファイルの中で違った操作を始めました。突然この例外が発生しました –

答えて

4

フィールドも落とし穴は、ネストされたクラスが、それらへの参照を有することです外部クラス。

class NotSerializable { 
    class Inner implements Serializable { 
     // contains a reference to this$0, the outer instance 
    } 

} 

あなたは、あなたが認識しないかもしれないフィールドを持っている。すなわち。

簡単な解決策は、完全なスタックトレースは何?何のオブジェクトあなたがしようとしている内部クラスにstatic

+0

コレクションは落とし穴であると思います。コレクション自体はシリアル化可能です。不思議なことに、型がシリアライズ可能かどうかを自動的にチェックするIDEはありません。 –

+0

これは問題だと思います。私は匿名のarraylistを持っていました。内部クラスの一種であり、シリアライズできないクラスに座っていて、それは実現しませんでした。 –

+1

'static'メソッドそれを静的メソッドに移動します)、暗黙の参照はありません。 –

関連する問題