sonarQube - faire de terrain transitoire ou serializable
Je suis en train de résoudre la suite de la violation signalée par sonarQube plugin Jenkins pour: "faire" mettre à jour " transitoire ou serializable.". Gravité: critique, tag: la sérialisation.
J'ai partagées interface
public interface MPUpdate {
void apply( SoapService svc, byte[] jerseyClientResp ) throws MPException ;
}
L'enum ci-dessous est le point d'entrée pour l'application de la logique
public enum DomainResource implements MPUpdate {
PROGRAMMES( new ProgrammeUpdate() ),
PRODUCTIONS( new ProductionUpdate() );
//more enums
private DomainResource( MPUpdate update ) {
this.update = update;
}
private final MPUpdate update; //Sonar: make "update" transient or serializable, priority: critical, tag: serialization
@Override
public void apply( SoapService svc, byte[] jerseyClientResp ) throws MPException {
update.apply( svc, jerseyClientResp );
}
}
L'un de l'unité de la logique initialisé par le biais de l'enum
public class ProgrammeUpdate implements MPUpdate {
private final ResponseConverter<ProgrammeDto> responseConverter = new ResponseConverter<>( ProgrammeDto.class );
@Override
public void apply( SoapService svc, byte[] jerseyClientResp ) throws MPException {
//APPLICATION LOGIC
}
}
Et enfin, c'est la façon dont il est utilisé:
...
String levelFromUrl = getLevel(); //eg. "programmes"
MPUpdate resource;
resource = DomainResource.valueOf( levelFromUrl.toUpperCase() );
...
resource.apply( soapService, jerseyClientOutcome );
...
De l'aide? L'utilisation d'enum d'améliorer les performances de l'exploitation forestière?
Merci beaucoup
Lire ceci: stackoverflow.com/questions/5177013/...
Double Possible de enum domaine doivent être Sérialisable?
Double Possible de enum domaine doivent être Sérialisable?
OriginalL'auteur | 2016-03-15
Vous devez vous connecter pour publier un commentaire.
Vous n'en avez pas besoin pour être sérialisable. Vous devez marquer comme transitoire. Les énumérations sont sérialisés en utilisant le simple nom de chaîne, de sorte que les autres champs ne sont pas pertinents. il suffit de marquer le champ en tant que passagère de faire sonar heureux (bien que l'outil lui-même devriez vraiment être en mesure d'identifier cette situation).
J'ai implémenté l'interface serializable dans la classe, même alors, je reçois cette erreur.
OriginalL'auteur jtahlborn