2016-12-23 3 views
1

BaseOperationsを拡張する関数を実装したいのですが、自分のクラスに直列化できないメンバーがある場合は例外が発生します。なぜ関数は直列化可能でなければならないのですか?そのメンバーとのJava Transientを使用してもよろしいですか?私のファンクションで静的メンバーを使用してもよろしいですか?カスケーディングするBaseOperationが直列化可能になるのはなぜですか?

答えて

0

このような質問を投稿するときは、コードとエラーを正確に共有してください。

一時変数として変数を宣言すると、その変数は永続性を持つことができません。だからあなたはそれをシリアル化することはできません。静的フィールドは、オブジェクトの状態を表すためには使用されません。静的フィールドはクラスの状態を表します。あなたが本当にシリアル化したい場合は、独自のシリアライザ/デシリアライザを開発する必要があります。

クラスに状態を保持したり変更したりする変数とメソッドがある場合は、それを直列化するとよいでしょう。変数値が変更された場合は、その状態が変化していることを意味します。 BaseOperationクラスは抽象クラスであるため、BaseOperationを親クラスとする他のクラスであれば、自動的にシリアル化されます。

関連する問題