[解決済み] なぜ writeObject は java.io.NotSerializableException を投げるのですか、そしてどのようにそれを修正するのですか?
2022-03-04 01:33:30
質問
この例外が発生したのですが、なぜこの例外が発生するのか、どのように処理すればよいのかがわかりません。
try {
os.writeObject(element);
} catch (IOException e) {
e.printStackTrace();
}
ここで
element
は
TransformGroup
を含む他の
TransformGroups
Atom クラスのインスタンスです。
public class Atom extends Group implements Serializable{
float pozX,pozY;
Group group= new Group();
Color3f blue = new Color3f(new Color(255));
Color3f black = new Color3f(new Color(0));
Sphere AtSph=new Sphere();
public Atom(final float WEIGHT, final int BOUNDS,final float radius,Color3f color)
{
AppSetting ap= new AppSetting(color, black);
AtSph=new Sphere(radius,1,100,ap);
}
}
エラーログの全文です。
java.io.NotSerializableException: javax.media.j3d.TransformGroup
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at cls.MolecularBuilder.addAtom(MolecularBuilder.java:511)
at cls.MolecularBuilder$Console.HidrogenItemActionPerformed(MolecularBuilder.java:897)
at cls.MolecularBuilder$Console$2.actionPerformed(MolecularBuilder.java:746)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
AppSetting
(Atom クラス) は、Appearance を継承した単なるカスタムクラスです。
解決方法は?
オブジェクトのフィールドは順番にそのフィールドを持ちますが、そのうちのいくつかは
Serializable
. あなたの場合、問題のあるクラスは
TransformGroup
. どのように解決するのですか?
-
自分のクラスであれば、それを
Serializable
-
クラスがサードパーティ製で、シリアライズされたフォームには必要ない場合、そのフィールドを
transient
- もし、そのデータが必要で、サードパーティーであれば、JSON、XML、BSONのような他のシリアライゼーションの手段を検討してください。 メッセージパック などで、サードパーティオブジェクトの定義を変更することなく、シリアライズすることができます。
関連
-
[解決済み] android.os.NetworkOnMainThreadException' を修正するにはどうすればよいですか?
-
[解決済み] javacが「using unchecked or unsafe operations」という警告を出す原因は何ですか?
-
[解決済み] JOGLまたはLWJGLの既成のプロジェクト
-
[解決済み] Java の条件付きコンパイル:コードチャンクをコンパイルしないようにするには?
-
[解決済み] HTTP ステータス 500 - サーブレットクラス pkg.coreServlet のインスタンス化に失敗しました。
-
[解決済み] アクティビティに割り当てられない
-
[解決済み] IntegerからBigIntegerへの変換
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] リフレクションとは何か、なぜ有用なのか?
-
[解決済み] なぜJavaにはtransientフィールドがあるのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Oracle DB : java.sql.SQLException: 閉じた接続
-
[解決済み] 一部の入力ファイルが非推奨のAPIを使用またはオーバーライドしている
-
[解決済み] javacが「using unchecked or unsafe operations」という警告を出す原因は何ですか?
-
[解決済み] JOGLまたはLWJGLの既成のプロジェクト
-
[解決済み] 型の不一致:ArrayListからListへの変換ができない
-
[解決済み] JavaにおけるMouseListenerとMouseAdapterの違いについて
-
[解決済み] どのように配列の10未満の値(x * 2)を倍増するコードを取得するには?(Java)
-
[解決済み] 文字列の長さに応じて文字列をトリミングする
-
[解決済み] Java: getInstanceとStaticの比較
-
[解決済み] ヘッドリカーシオンとテールリカーシオンの違い [重複]について