#serialization #findbugs
#сериализация #поиск ошибок
Вопрос:
При запуске кода через FindBugs для сбора вонючих фрагментов я получаю
Ошибка: класс com.MyClass определяет нестационарное несериализуемое поле экземпляра, идентификатор шаблона someSet: SE_BAD_FIELD, тип: Se, категория: BAD_PRACTICE
Я знаю, что set не реализует сериализацию, но HashSet реализует, и именно поэтому он инициализируется тогда и там.Я думал, что это хорошая практика: (но, видимо, нет
public class Myclass extends
{
@Transient
private Set<String> someSet = new HashSet<String>();
...........
}
Любая помощь была бы отличной. Предупреждение низкого уровня, но хотелось бы знать, почему?
Ответ №1:
К сожалению, FindBugs недостаточно умен, чтобы распознать, что поле, определенное как Set, на самом деле является HashSet . Это недостаток findbugs. Здесь следует добавить проблему http://sourceforge.net/tracker/?group_id=96405amp;atid=614693