Non transitoires non sérialisable champ d'instance dans la classe sérialisable

Considérons le code suivant :

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;   

}

Maintenant ClientEventSource s'étend une classe qui implémente Serializable interface . Les classes CellCoord et FramingBlock sont des POJO avec un tas de getters et setters . FindBugs est de se plaindre de la editingCell et framingBlock champs en disant :

Cette classe Sérialisable définit un non-primitif champ d'instance qui
n'est ni transitoire, Serializable, ou java.lang.De l'objet, et ne pas
apparaissent pour mettre en œuvre l'interface Externalizable ou les méthodes readObject()
et writeObject() méthodes.  les Objets de cette classe ne sera pas
désérialisé correctement si non Sérialisable objet est stocké dans ce
champ.

Bon alors tout est bien sauf comment se fait-il dit que les champs d'instance ne sont pas "de java.lang.L'objet" . C'est tout à fait trompeuse ou il me manque quelques notions de base ici ?

Je pense que c'est juste quelque chose qui a glissé dans FindBugs. Ces 2 classes sont Objects (évidemment) et Object ne pas mettre en œuvre Serializable. Il ne fait aucun sens pour moi. Ma suggestion: faire de ces 2 classes sérialisables ou transitoire et passer 😀 .
double possible de FindBugs - SE_BAD_FIELD règle, pourquoi il ignore java.lang.Objet?
pas tout à fait un doublon mais merci pour la réponse à cette question. Il est utile.
Ce qui doit être fait si nous obtenons ci-dessus, à cause de byte[] utilisé dans une classe Sérialisée?

OriginalL'auteur Geek | 2012-07-27