Ist es gute Praxis zu verwenden Ordinalzahl der enum?

Habe ich enum:

public enum Persons {

    CHILD,
    PARENT,
    GRANDPARENT;

}

Gibt es irgendwelche Probleme mit der Verwendung von ordinal() Methode zu überprüfen, "Hierarchie" zwischen enum-Mitglieder? Ich meine - gibt es irgendwelche Nachteile, wenn Sie es ohne Weitschweifigkeit, wenn Sie jemand ändern kann, versehen, um in der Zukunft.

Oder ist es besser, etwas zu tun:

public enum Persons {

    CHILD(0),
    PARENT(1),
    GRANDPARENT(2);

    private Integer hierarchy;

    private Persons(final Integer hierarchy) {
        this.hierarchy = hierarchy;
    }

    public Integer getHierarchy() {
        return hierarchy;
    }

}
Sie selbst müssen einen numerischen Wert? Enum-Werte können miteinander verglichen werden direkt. Zum Beispiel if (Persons.CHILD.compareTo(Persons.PARENT) < 0) System.out.println("CHILD has a smaller value than PARENT.");
"Die Ordinalzahl der enum"? Das wäre enumth.
Menschen, die diese Art von Sache, die eine Menge, aber es code macht die Pflege schwieriger.
Vielleicht es ist nicht ein job für enum an alle.
Es gibt keinen Grund zu verwenden Integer Objekte anstelle von int Werte hier.

InformationsquelleAutor ByeBye | 2017-06-20

Schreibe einen Kommentar