Lösung für die Magic-Number-Problem...?

Betrachten Sie das folgende code-segment...

 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;
        }

}

Nun Nummer 3 und 4 in den Fällen(Fall 3 und Fall 4) erkannt werden als "Magische zahlen", die von SONAR.

Zu vermeiden, dass Problem, ich habe meinen code-segment wie folgt...

 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;
    }
}

Ist dies ein guter Weg, um zu lösen die Magische Zahl in dieser Art von Szenario ?.

Was meinst du, dass 3 und 4 sind "erkannt als " Magische zahlen"? Was ist die "Magische Zahl-Problem"?
Ich nehme an, du redest SONAR erkennen Sie als Magic Numbers?
ja Ihr habt Recht: überprüfen Sie diese andere Frage Referenz: stackoverflow.com/questions/47882/...
Eine bessere Möglichkeit wäre, eine Klasse haben, mit static Werte, so dass Häufig verwendete Magic zahlen können dorthin verlegt werden, dass Sie überall verwendet werden können in das Projekt.
Dies ist in Bezug auf das SONAR. SONAR erkennt diese als "Magische Zahlen"

InformationsquelleAutor Ruchira Gayan Ranaweera | 2013-03-21

Schreibe einen Kommentar