次のコードを検討してください。
public class LIMSGrid extends ClientEventSource implements Focusable, FramingBlockWrapper {
//cell that is curently in edit mode
private CellCoord editingCell = null;
//framing block info
private FramingBlock framingBlock;
}
interfaceClientEventSource
を実装するクラスを拡張するようになりました。Serializable
クラスCellCoord
とFramingBlock
は、多数の getter と setter を持つ POJOS です。editingCell
FindBugs は、フィールドとframingBlock
フィールドについて次のように不平を言っています。
この Serializable クラスは、transient、Serializable、または java.lang.Object のいずれでもない非プリミティブ インスタンス フィールドを定義し、Externalizable インターフェイスまたは readObject() および writeObject() メソッドを実装していないようです。シリアライズ不可能なオブジェクトがこのフィールドに格納されている場合、このクラスのオブジェクトは正しくデシリアライズされません。
インスタンスフィールドが "java.lang.Object" ではないということを除いて、すべて問題ありません。これは完全に誤解を招くものですか、それともここでいくつかの基本事項が欠けていますか?