1

ここに私の質問があります: 私は複雑な製品 (100,000 行以上のコード) に取り組んできました。これは基本的に最大 8 つの異なるクラスをJTree構造にアタッチし、エンティティ全体をディスクにシリアル化します。バージョン管理を容易にするために、独自の各クラスに SUID を設定していますが、これはすべて正常に機能します。JDK1.7 textPad 開発ツールを使用してすべてのテストを行ってきました。ここまでは順調ですね。

JRE(1.7)(先週初めて) を使用してアプリを起動しましたが、デシリアライゼーション バージョン エラーで失敗します。エラーは、私のクラスではなく、JTree の逆シリアル化から発生します。

これにより、次の 2 つの問題が発生します。

  1. などのコア データ構造がJTree、同じ Java リリース内で普遍的にデシリアライズできないのはなぜですか? 1.7 リリース内で JRE Swing と JDK Swing の間にバージョンの変更はないのでしょうか?
  2. JTree(または他の) Swing コンポーネントで SUID を設定できますか?

誰でも解決策を見ることができますか?

4

1 に答える 1

1

J2SE ドキュメントから: 「警告: このクラスのシリアライズされたオブジェクトは、将来の Swing リリースと互換性がありません。現在のシリアライゼーション サポートは、同じバージョンの Swing を実行しているアプリケーション間の短期ストレージまたは RMI に適しています。1.4 の時点で、長期のサポートすべての JavaBeansTM の用語ストレージが java.beans パッケージに追加されました。XMLEncoder を参照してください。

于 2012-12-04T18:49:35.070 に答える