Ich habe oft die Situation, wo ich eine Variable für eine Klasse benötigen, die so einfach Enum-Typen, beispielsweise dargestellt werden könnte:Java Enum Overkill?
private enum PageOrder {DOWN_THEN_OVER, OVER_THEN_DOWN};
Wenn ein declare den Enum-Typ innerhalb der Klasse, die die Variable dann hält Ich habe den qualifizierten Namen MyClass.PageOrder
zu verwenden, der nicht bequem ist. Aber wenn ich eine neue Klasse erstellen, habe ich eine Klasse für eine einfache enum-Deklaration, die für mich übertrieben erscheint.
Aus diesem Grund verwende ich häufig Ganzzahlen anstelle von Aufzählungstyp.
Alle Kommentare/Vorschläge zu diesem Thema?
Niemals die richtige Lösung auf eine falsche "korrigieren", nur um Tipparbeit zu sparen. – biziclop
"* Aber wenn ich eine neue Klasse erstelle, habe ich eine Klasse für eine einfache Enum-Deklaration, die für mich übertrieben erscheint *" - wo ist der Overkill? Ein privates Enum ist ebenfalls eine Klasse (mit einer eigenen .class-Datei) - es hat nur eine andere Sichtbarkeit. –
Ein Enum in seiner eigenen Datei mag wie Overkill erscheinen, aber es ist nicht. Es ist völlig angemessen und es ist gutes Design. Fügen Sie der Enum-Klasse und jeder ihrer Konstanten ein nützliches Javadoc hinzu, und Sie werden feststellen, dass die Quelldatei nicht annähernd so dünn aussieht. Es gibt legitime Verwendungen für innere Klassen, aber etwas zu einer inneren Klasse zu machen, nur weil seine eigene Datei "zu schwer" wäre, ist kein guter Grund. – VGR