предлагает методы для сериализации поля вне (реализует Serializable - внутренний метод для сериализации).
отрим класс ниже. Если я запусту Findbugs против него, это выдаст мне ошибку («Непереходное непериализуемое поле экземпляра в сериализуемом классе») в строке 5, но не в строке 7.
1 public class TestClass implements Serializable {
2
3 private static final long serialVersionUID = 1905162041950251407L;
4
5 private Set<Integer> mySet; // Findbugs error
6
7 private HashSet<Integer> myOtherSet;
8
9 }
Это правильно, потому что java.util.Set никогда не реализует Serializable в своей иерархии, а java.util.HashSet делает. Однако лучше всего использовать код вместо интерфейсов вместо конкретных реализаций.
Как я могу лучше всего справиться с этим?
Я могу добавить @Suppresswarnings (justification = "No bug", values = "SE_BAD_FIELD") в строку 3. У меня довольно много Наборов и Списков в моем реальном коде, и я боюсь, что это будет слишком сильно засорять мой код.
Есть ли лучшие способы?