2017-04-11 3 views
1

ベースクラスがSerializable Interfaceを実装していないが、DerivedクラスがSerializableインターフェイスを実装する場合、シリアライズされたオブジェクトをデシリアライズできますか?私がそれをしようとしたとき、私はClassNotFoundExceptionを得ました。シリアライズされたオブジェクトを逆シリアル化する

答えて

0

にClassNotFoundが.classファイルに必要なファイルがないは、あなたが(そのためには、クラスパスの設定の問題である!)

そして、シリアル化を解除しようとするJVMのコンテキスト内に存在しないことを意味します。これは、れますSerializeableでないすべてのスーパークラスに引数のないデフォルトのコンストラクタが含まれている場合は、のみが動作します(詳細はhereを参照)。

+0

あなたは歓迎されている情報 –

+0

をありがとう参照変数クラスがSerializableを実装するようにしてください。そして、あなたがそれを逃さないことを確かめるために、あなたは1つを受け入れることができます(そしてupvoteレベルに達した後)、1つ以上の答えをupvote ;-) – GhostCat

0

はい、メンバー変数が参照型であり、シリアライズ可能でない場合は、参照変数の値がシリアル化後にストリーム内でnullになるため、デシリアライズできません。そのため、逆シリアル化中に、Javaは内部的にClass.forname()を呼び出して、その参照変数をオブジェクトに戻します。 nullだったので、ClassNotFoundExceptionを取得します。

Soltn ..: -

関連する問題