Sto analizzando il progetto Java SE 7 di SonarQube versione 5.1.Il campo di enum deve essere serializzabile?
Quindi, ho affrontato squid:S1948
nel seguente codice.
Campi in una classe "Serializable" È necessario che siano transitori o serializable
campi in una classe Serializable devono essi stessi essere o Serializable o transitoria, anche se la classe non è mai esplicitamente serializzato o deserializzato. Questo perché sotto carico, la maggior parte delle strutture applicative J2EE scaricano oggetti su disco e un oggetto presumibilmente serializzabile con membri di dati non transitori e non serializzabili possono causare arresti anomali del programma e aprire la porta agli aggressori.
enum ShutterSpeed {
private final Rational value; // Make "value" transient or serializable.
...
}
penso che tutti i campi enum non verranno serializzati in J2SE 5,0 (Serialization of Enum Constants)
Si tratta di un falso positivo?
Codice completo e numero sono here.