Considérons la classe ci-dessous. Si je lance Findbugs contre, il me donne une erreur ("Non-transitoire non sérialisable champ d'instance dans la classe sérialisable") sur la ligne 5, mais pas sur la ligne 7.
1 public class TestClass implements Serializable {
2
3 private static final long serialVersionUID = 1905162041950251407L;
4
5 private Set<Integer> mySet; // Finsbugs error
6
7 private HashSet<Integer> myOtherSet;
8
9 }
C'est correct parce que java.util.Ensemble jamais implémente Serializable dans sa hiérarchie et java.util.HashSet n'. Toutefois, il est préférable de code à l'aide d'interfaces plutôt que des implémentations concrètes.
Comment puis-je mieux gérer cela?
Je peux ajouter un @Suppresswarnings(justification="Pas de bug", les valeurs="SE_BAD_FIELD") sur la ligne 3. J'ai beaucoup d'Ensembles et de Listes dans mon code et je suis peur qu'il la litière de mon code de trop.
Sont t-il de meilleures façons de faire?