Solution pour le Nombre Magique de problème...?

Considérer le segment de code suivant...

 public static UserStatus getEnum(int code) {
    switch (code) {
        case 0:
            return PENDING;
        case 1:
            return ACTIVE;
        case 2:
            return SUSPENDED;
        case 3:
            return DELETED;
        case 4:
            return LOGIN_DISABLED;
        default:
            return null;
        }

}

Aujourd'hui au nombre de 3 et 4 dans le cas(cas 3 et 4) sont détectés comme des numéros de magie par le SONAR.

Pour éviter ce problème, j'ai changé mon code segment comme suit...

 public static UserStatus getEnum(int code) {        
    final int Pending=0;
    final int Active=1;
    final int Suspended=2;
    final int Deleted= 3;
    final int Login_details=4;

    switch (code) {
        case Pending:
            return PENDING;
        case Active:
            return ACTIVE;
        case Suspended:
            return SUSPENDED;
        case Deleted:
            return DELETED;
        case Login_details:
            return LOGIN_DISABLED;
        default:
            return null;
    }
}

Est-ce une bonne façon de résoudre le nombre magique problème dans ce genre de scénario ?.

Que voulez-vous dire que 3 et 4 sont "détectés comme des numéros de magie"? Quel est le "nombre magique problème"?
Je suppose que vous parlez de SONAR les détecter comme Magic Numbers?
oui, votre avez raison: cochez cette autre question de référence: stackoverflow.com/questions/47882/...
Une meilleure option serait d'avoir une classe, avec static valeurs, de sorte que fréquemment utilisé Magic les nombres peuvent être déplacés, ne qu'ils peuvent être utilisés n'importe où dans le projet.
C'est en ce qui concerne le SONAR. SONAR de détecter ceux que des Numéros de Magie

OriginalL'auteur Ruchira Gayan Ranaweera | 2013-03-21