3

クラスをシリアライズ可能にしようとしています。私のクラスはすべてそうですが、使用法が見つからない他のクラス (com.sun.java.swing.plaf.windows.XPStyle、WClipboard など) に対して NotSerializableException がスローされます。

これらのクラスをシリアライズするとき、またはシリアライズ可能にするときにどうすればよいですか?

解決した

問題は、JFrames と JDialogs で使用した LookAndFeel にありました (問題XPStyle)。2 つ目 ( WClipboard)、ここから取得したサードパーティ クラスで使用されました。このクラスはクリップボードを使用します。

Clipboard フィールドtransientと LookAndFeel を削除するだけで管理できなくなりました。

4

1 に答える 1

1

永続化または転送のためにデータをシリアル化したくない場合は、それらを宣言できますtransient

ただし、これらのオブジェクト (クラス) 内のデータを永続化したり、TCP / UDP などを介してトランスポートしたりする必要がある場合は、クラスよりもextend独自の解釈を実装して、拡張クラスを宣言できるようにします。Serializable.


最後のオプションは、 FSTKryoSerializationなどによって提供されるものなど、 の別のメソッドを使用することです。多くの場合、これらのシリアライゼーション ライブラリは、デフォルトの Java 実装ではできないオブジェクトをシリアライズするために使用できます。Reflection

于 2015-06-28T23:58:59.300 に答える