私は次のクラス署名を持っており、ClientEventSourc
実装していますSerializable
:
public class Grid extends ClientEventSource implements Focusable, FramingBlockWrapper,LIMSEditableField
今FindBugsはこれを危険なものとしてリストしています:
クラスはSerializableですが、serialVersionUIDを定義していません
このクラスはSerializableインターフェイスを実装しますが、serialVersionUIDフィールドを定義しません。.classオブジェクトへの参照を追加するだけの簡単な変更は、クラスに合成フィールドを追加します。これにより、残念ながら暗黙のserialVersionUIDが変更されます(たとえば、String.classへの参照を追加すると、静的フィールドclass $ java $ lang$Stringが生成されます。 )。また、ソースコードとバイトコードのコンパイラが異なると、クラスオブジェクトまたは内部クラスへの参照用に生成された合成変数に異なる命名規則が使用される場合があります。バージョン間でSerializableの相互運用性を確保するには、明示的なserialVersionUIDを追加することを検討してください。
それが何を意味するのか、そしてこれを修正するための最良の方法は何であるかを説明できる人はいますか?