7

自動シリアルバージョンIDを生成して、一部のクラスの警告を削除したいと思います。Eclipseでは、これを行うのは簡単です。IDEは自動的に生成してクラスに追加できます。ただし、この機能はNetBeansには表示されません。利用できますか?もしそうなら、それはどこにありますか?そうでない場合、それを有効にすることができるプラグインはありますか?

4

5 に答える 5

9

実際、その「問題」に対する私の解決策は、プロジェクト構成でその警告を非アクティブ化することでした(Eclipseを使用していますが、NetBeansは同じだと思います)。これは間違った警告です。JVMがシリアルバージョンを計算するため、シリアルバージョンがないことが最も安全な選択です。これは起動時に一意であり(クラスのハッシュのようなもの)、明示的に追加すると、コードに互換性のない変更を加えた場合にのみ、更新に注意する必要があります

したがって、それを気にしない場合は、その値を回避することをお勧めします(この方法では、確実に互換性のあるバージョンとのみ互換性がありますが、誤検知がいくつかあります:互換性がないと見なされますが、実際には互換性があります) (おそらく私の場合)必要なときに更新するのを忘れて、実際の有効性エラー(偽陰性:互換性があると考えますが、そうではありません)につながる固定値をそこに置くこと。

于 2009-09-03T13:10:33.533 に答える
7

これは、既存のシリアル化されたインスタンスとの互換性を維持する必要がない限り、手動で行うのも簡単です。この行をクラスにコピーするだけです。

private static final long serialVersionUID = 1L;

serialVersionUIDがクラス間で一意である必要はまったくないことに注意してください。

于 2009-09-03T13:03:55.853 に答える
6

箱から出してすぐにNetBeansはこの機能をサポートしていないようですが、プラグインはサポートしています。

ご覧ください

リンク1リンク2リンク3

于 2009-09-03T13:15:23.107 に答える
1

(今同じ質問をしているユーザーの場合)
私はnb7.4を使用していて、このプラグインをnb6.5からnb7.4
プラグ
インで見つけまし た。nb7.4でテストして正常に動作しました。servial version idの意味については、
serialVersionUID
を明示的に追加すると、クラスがシリアル化されてどこかに保存されるまで、uidを変更せずにクラスにすべての変更を加えることができます
。データベース
が終了し、クラスAを変更して、古いクラスAとの互換性を
失います。誰かがシリアル化されたオブジェクトを最後のクラスAから新しいクラスAにロードしようとすると、問題が発生する可能性があります。

クラスAを変更して、最後のクラスAと互換性をなくす場合は、uidを変更する必要があるため、誰かがロードしようとすると、InvalidClassExceptionsが発生します。

于 2013-12-09T19:47:13.683 に答える
0

Netbeansでこれらの警告を無効にするには:

  1. 開く:[ツール]->[オプション]
  2. 開く:[エディター]->[ヒント]タブ
  3. 言語の選択:Java
  4. 標準のJavac警告のチェックを外します->シリアル化
  5. わかった

また、タスクリストから警告をクリアするには、〜/ .netbeans / 6.8 / var / cacheをクリアし、Netbeansを再起動する必要がありました。

于 2010-01-07T08:48:53.287 に答える