Я анализирую проект Java SE 7 от SonarQube версии 5.1.Должно ли поле enum быть Serializable?
Затем я столкнулся с squid:S1948
по нижнему коду.
Поля в «Serializable» класса должны быть либо временными или сериализации
поля в Serializable класса сами должны быть Serializable или переходный, даже если класс никогда не явно сериализованная или десериализации. Это связано с тем, что при загрузке большинство фреймворков приложений J2EE сбрасывают объекты на диск и предположительно объект Serializable с непереходными, несериализуемыми элементами данных может привести к сбоям в работе программы и открыть дверь злоумышленникам.
enum ShutterSpeed {
private final Rational value; // Make "value" transient or serializable.
...
}
Я думаю, что любое перечисления поле не будет упорядочен в J2SE 5.0 (Serialization of Enum Constants)
Является ли это ложно-положительным?
Весь код и выпуск here.