問題タブ [serialversionuid]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1427 参照

java - java.io.InvalidClassException: 文字列からオブジェクトへのシリアル化に失敗しました java

Doodle というオブジェクトがあり、それを文字列にシリアル化して問題ありません。オブジェクトをデシリアライズしようとすると問題が発生します。エラーは次のとおりです。 java.io.InvalidClassException: java.util.ArrayList; ローカル クラスに互換性がありません: ストリーム classdesc serialVersionUID = 8664875232659988799、ローカル クラス serialVersionUID = 8683452581122892189

シリアライズとデシリアライズの方法は次のとおりです。

別のタイプのオブジェクトをシリアル化するために同じメソッド(ただし変数は異なります)を使用しますが、そのメソッドは非常にうまく機能します。どこが悪いのかわからない!

0 投票する
2 に答える
730 参照

java - POJO クラスのシリアル バージョン ID の一意性

もう 1 つばかげた質問です。しかし、過去1時間から頭が回転しているので、聞きたかった.

serialVersionUID が一意であることは誰もが知っています。ユニークさのレベルは?プロジェクト、ワークスペース、またはサーバーで一意にする必要がありますか?

同じワークスペース内の 2 つのクラスに同じ serialVersionUID (コピー ペースト) がある場合、IllegalClassCasteException またはその他の例外が発生しますか?

プロジェクト/ワークスペースごとに一意である場合、Eclipse がデフォルトの serialVersionUID (1L) を提供するのはなぜですか?

0 投票する
2 に答える
1165 参照

java - serialVersionUID 例外

私は現在、シリアル化可能なクラス ClientRepository を持つプロジェクトを書いています。クラスは serialVersionUID を指定しません。プログラムを実行しようとすると、次の例外が発生しました。

だから私はデフォルトのserialVersionUID(1L)を追加しましたが、今は

「ストリームclassdesc serialVersionUID」を1Lに変更して、競合しないようにするにはどうすればよいですか?

ありがとう!

0 投票する
2 に答える
2312 参照

java - Java: ClassNotFoundException が原因でシリアライズ/デシリアライズに失敗しました

私はPilotクラスとそのクラスのインスタンスを持っています: bobThePilot.

にシリアル化bobThePilotし、Stringそれを自分のハードディスクにコピーします。次に、新しいプロジェクトを作成し、Pilotクラスを再作成します (以前とまったく同じです)...

そしてnewBobThePilot、ディスクから取得した文字列をデシリアライズして、この新しいプロジェクトを作成します。しかし、それは失敗します。という名前のものが原因だと誰もが言いましたserialVersionUID

それを行うことは可能ですか(異なるクラスでシリアル化および逆シリアル化します(まったく同じクラスですが)?もしそうなら、どのように?

ありがとう。

道徳:

  1. serialVersionUID 属性をシリアル化されたクラスに追加します 例:
    private static final long serialVersionUID = 1L;
  2. implements serializableシリアル化されたクラスに関連するすべてのクラス

0 投票する
2 に答える
532 参照

java - 一時変数と揮発変数とシリアル バージョンの uid の間に関係はありますか?

実際、シリアル化の概念と、一時変数とローカル変数が serialversionuid にどのように関連しているか、およびシリアル化が実際にどのように行われているかについて知りたいですか?

0 投票する
1 に答える
464 参照

java - 1.7 でシリアル化された HashMap を 1.6 で使用できますか?

これにより、マイナーバージョン番号を示すエラーがスローされると思いました。しかし、そうではありませんでした。そして、正しく動作しています。誰でも指摘できますか、なぜこれが機能するのですか?

Java 1.7で実行されているアプリケーションでhashMapを作成し、シリアル化し、jdk 1.6を使用してアプリケーションに送信しました。受信側アプリケーションは、エラーなしでコンテンツを取得できました。

0 投票する
1 に答える
234 参照

java - getSerialVersionUID が UID を決定するために使用するコンテンツは何ですか?

そのため、構成を保存するときに多くのことをシリアル化する大規模なプロジェクトがあり、その大部分を再設計する必要がありました。多くのクラスの serialVersionUID フィールドを既に定義していたので、UID を再計算する必要があるファイルを知りたいと思いました。

( ObjectStreamClass.lookup(classname) を介して) serialVersionUID の計算にクラスのどのプロパティが使用されたかについて、SO に関する投稿が見つかりませんでした。私は最終的にそれを定義する仕様のスポットを見つけました. したがって、これは、この小さな知識を節約するための自己回答型の質問の 1 つです。

これがエチケットから外れている場合 (仕様に関する質問であるため) お知らせください。喜んで削除します。

では、serialVersionUID を計算する Java 組み込みアルゴリズムを使用する場合、クラスのどの詳細が使用されるのでしょうか?

0 投票する
2 に答える
74 参照

java - メソッド名が考慮される理由、または serialversionuid のハッシュを生成する理由

連載中に授業があります

しかし、逆シリアル化中に、オブジェクトの状態にまったく影響を与えない追加のメソッド(後述)があり、シリアル化はすべてオブジェクトの状態を保存することであり、なぜ追加のメソッドがserialversionuidのハッシュ生成に貢献しているのか. 現在のシナリオでは、InvalidClassException で失敗します。ただし、この余分なメソッドによってオブジェクトの状態が変更されることはありません。

0 投票する
1 に答える
204 参照

java - プログラムによる Java ファイルの SerialVersion ID の追加

Hibernate ツールを介してリバース エンジニアリングされた何百もの Java エンティティがあります。Entity クラスはjava.io.Serializableインターフェイスを実装しているようですが、ありませんserialVersionUID

これらのファイルに追加serialVersionUID する必要があります (最悪の場合、手動で行う必要があります)。他にできる方法はありますか?理想的な解決策は、リバース エンジニアリングの手順自体で行うことですが、パッケージ名を渡しserialVersionUIDてエンティティ クラスに追加することもできます。

Hibernate 3.0を使用しています