предлагает методы для сериализации поля вне (реализует 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. У меня довольно много Наборов и Списков в моем реальном коде, и я боюсь, что это будет слишком сильно засорять мой код.

Есть ли лучшие способы?

Ответы на вопрос(7)

Ваш ответ на вопрос