Enum austauschbar machen

miasma

Aktives Mitglied
Hallo,

ist es irgendwie möglich ein Enum austauschbar zu machen? Irgendwie durch ein Service Provider Interface oder so etwas? Ich hab die essentiellen Methoden, die jede Enum-Konstante implementieren muss in ein Interface ausgelagert.

Bspw. will ich Knoten in einer Baumstruktur serialisieren/deserialisieren:

Java:
		for (final NodeBase node : mNodes.values()) {
			final Kind nodeKind = node.getKind();
			final byte id = nodeKind.getId();
			out.writeByte(id);
			nodeKind.serialize(out, node, mPageReadTrx);
		}

Java:
		for (int offset = 0; offset < size; offset++) {
			final byte id = in.readByte();
			final Kind enumKind = Kind.getKind(id);
			final NodeBase node = enumKind.deserialize(in, pageReadTrx);
			mNodes.put(node.getNodeKey(), node);
		}

Allerdings will ich die Knotentypen austauschbar machen, d.h. die ganze enum-Klasse. Wie macht man sowas? Kind implementiert NodeKind für serialize(...), deserialize(...), getId(). Vielleicht mit einem Parameter Class<? extends NodeKind> irgendwo als Parameter (Class<? extends Enum<?> & NodeKind> ist ein Syntaxfehler). Und dann beim serialisieren bspw. über getEnumConstants iterieren und schauen wann die Konstante == nodeKind Konstante ist und dann .serialize(...) aufrufen?

Vielen Dank,
Johannes
 

AlexSpritze

Bekanntes Mitglied
Das widerspricht mMn der Intention von Enums, dass du immer eine abzählbare, nicht erweiterbare Menge von Instanzen der Klasse, also des Enums hast. Das Vorgehen mit dem Interface für Enums benutzen wir in unserem Projekt auch, allerdings nur, damit sie gleich behandelt werden können. Dennoch hat jedes Enum seine eigene Aufgabe und kann nicht durch andere ausgetauscht werden.
 

miasma

Aktives Mitglied
Prinzipiell kann ich ja auch eine NodeFactory-Klasse oder sowas einführen und intern in der NodeFactory-Klasse dann ein enum nutzen, das sollt eigentlich glaube ich klappen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Klassen Enum überladen od. austauschbar machen? Allgemeine Java-Themen 2
J Best Practice Generics mit Enum Allgemeine Java-Themen 3
Drachenbauer Wie kann ich einer existierenden Enum von außerhalb veränderte Werte zuweisen? Allgemeine Java-Themen 5
A Ist ein enum hier richtig? Enum toString() Methode. Allgemeine Java-Themen 1
E Eigenen "Aufzählungstyp" erstellen - mit enum ? Allgemeine Java-Themen 18
I Enum gegen Enum tauschen Allgemeine Java-Themen 1
F Enum-werte als Methoden-Parameter übergeben Allgemeine Java-Themen 6
Neumi5694 Interface Generics für Enum-Filterung verwenden Allgemeine Java-Themen 5
perlenfischer1984 TestNG - Enum testen Allgemeine Java-Themen 1
I Setzen und Lesen eines Objektes (Enum?) Allgemeine Java-Themen 10
Q Enum Allgemeine Java-Themen 3
F Enum und Klasseninhalt Allgemeine Java-Themen 1
K Enum mit switch Allgemeine Java-Themen 2
D Enum Kategorien Allgemeine Java-Themen 10
C Datentypen Enum-Werte Bestanteil von anderem Enum Allgemeine Java-Themen 8
Rudolf State Pattern als Enum? Allgemeine Java-Themen 10
EnHancEd[] kurze enum-Frage Allgemeine Java-Themen 4
X Java findet eine Enum Klasse nicht Allgemeine Java-Themen 2
A Dynamisches Enum? Allgemeine Java-Themen 2
E Wert von enum zur Laufzeit festlegen. Allgemeine Java-Themen 5
D Methode für generische enummap/enum Allgemeine Java-Themen 10
D Array oder Vector in Enum Deklarieren Allgemeine Java-Themen 3
L HashMap mit Enum Keys Allgemeine Java-Themen 3
G Enum mit Array Allgemeine Java-Themen 3
D Wie prüfen, ob ein String Teil eines Enum Types ist? Allgemeine Java-Themen 12
H2SO3- Enum mit Java 1.4 Allgemeine Java-Themen 6
S Erstes Enum bekommen? Allgemeine Java-Themen 2
M Verständnis enum - switch Allgemeine Java-Themen 2
R Java enum switch Allgemeine Java-Themen 11
S Enum-Class valueOf Function? Allgemeine Java-Themen 1
R Java enum Allgemeine Java-Themen 5
J Enum Problem: compiliert nicht mit Sun's compiler. Allgemeine Java-Themen 2
V Wie Enum an Funktion "übergeben" ? Allgemeine Java-Themen 4
N Java und Enum Allgemeine Java-Themen 3
GilbertGrape persistentes Enum oder Konstanten? Allgemeine Java-Themen 3
G enum Integer zuweisen Allgemeine Java-Themen 14
G class, interface, or enum exp? Allgemeine Java-Themen 2
P enum Allgemeine Java-Themen 7
S Java Enum und ordinal() Allgemeine Java-Themen 4
S Enum Fehler Allgemeine Java-Themen 17
C Enum-namespace ? Allgemeine Java-Themen 5
G Effizienz von enum vs. Konstanten Allgemeine Java-Themen 4
C enum und Vererbung Allgemeine Java-Themen 3
K Warunung und Fehler bei Enum.valueOf Allgemeine Java-Themen 2
C enum Strings mit punkt ? Allgemeine Java-Themen 3
J Enum in Java Allgemeine Java-Themen 19
C Hostzugriff universal austauschbar gestalten Allgemeine Java-Themen 4
S Build-Zeitpunt (Datum und Uhrzeit) irgendwie während der Laufzeit zugänglich machen..? Allgemeine Java-Themen 4
K Java Anwendung machen Anleitung Allgemeine Java-Themen 5
berserkerdq2 Ist es schlechter Programmierstyle mehrere Panes aufeinander zu machen? Allgemeine Java-Themen 1
X Regex mit mehreren Bedingungen machen Allgemeine Java-Themen 5
B Mit Java Click bei (x,y) machen? Allgemeine Java-Themen 6
A Objekt aus anderen Objekten machen Allgemeine Java-Themen 8
O Leerzeichen und Umlaute im Pfad einer Java Applikation machen Probleme Allgemeine Java-Themen 13
A Best Practice Wie viele Referenzen machen Sinn? Weniger ist mehr? Allgemeine Java-Themen 1
P Gif transparent machen Allgemeine Java-Themen 2
LimDul Mittels Streams aus Strings A B C den String A, B und C machen Allgemeine Java-Themen 12
P Was machen bei NoSuchSessionException? Allgemeine Java-Themen 4
X Kapselung Wie würdet ihr ein Service Layer erreichbar machen ... Allgemeine Java-Themen 62
M Dieses Programm schneller machen? Allgemeine Java-Themen 2
T String aus While Schleife für ganze Klasse sichtbar machen Allgemeine Java-Themen 5
D Eine Forschleife mit Threads abarbeiten um es zu schneller zu machen. Ist das möglich? Allgemeine Java-Themen 20
K Properties serializable machen Allgemeine Java-Themen 6
J Aus mehreren Klassen ein Datei ausführbare machen Allgemeine Java-Themen 6
X Aus Programm "Installationsprogramm" machen Allgemeine Java-Themen 6
Tacofan Button nicht mehr anklickbar machen Allgemeine Java-Themen 8
F CPU Last eines Thread ausfindig machen Allgemeine Java-Themen 0
K Best Practice JFrame Objekt allgemein zugänglich machen Allgemeine Java-Themen 8
J Java code "plugin" fähig machen Allgemeine Java-Themen 4
Z Klassen ArrayList selbst machen Allgemeine Java-Themen 5
D Code bitte mit 19 stelligen Zahlen kompatibel machen Allgemeine Java-Themen 5
F Input/Output Problem mit iText: Formularfeld uneditierbar machen Allgemeine Java-Themen 0
T Programm "diebstahlsicher" machen? Allgemeine Java-Themen 4
A BufferedImage einzelne Pixel transparent machen V2.0 Allgemeine Java-Themen 2
L Variable auch in der function verfügbar machen? Allgemeine Java-Themen 4
Java-Insel Zeilen im Terminalfenster unsichtbar machen Allgemeine Java-Themen 9
K A*-Implementierung flexibler machen Allgemeine Java-Themen 4
Java-Insel Wie kann ich ein Java-Programm zum "automatischen Öffner" einer Dateisorte machen? Allgemeine Java-Themen 13
B exe-Datei aufrufen und dort Konsoleneingaben machen Allgemeine Java-Themen 2
D [Visualization lib] ColumnChart Grenzlinie machen Allgemeine Java-Themen 2
M Variablen Wie Variable verfügbar machen? Allgemeine Java-Themen 16
K Interface Interface comparable machen Allgemeine Java-Themen 9
V 2D-Grafik Bild transparent machen. Allgemeine Java-Themen 4
cedi Eingegebenen Text in der Konsole nicht sichtbar machen oder nur in Sternchen anzeigen Allgemeine Java-Themen 2
S Umlaute machen probleme Allgemeine Java-Themen 3
Rudolf Aus Collection<Integer> eine Zahl machen Allgemeine Java-Themen 2
K Serialisierung komplett selbst machen Allgemeine Java-Themen 13
M Farbe transparent machen Allgemeine Java-Themen 3
C Linie in Matrix machen Allgemeine Java-Themen 5
J Aus Applikation ein Applet machen Allgemeine Java-Themen 5
L in zufälligen Sekunden Ausgabe machen Allgemeine Java-Themen 2
K Escapen rückgängig machen Allgemeine Java-Themen 2
Q BufferedImage enzelne Pixel tranzparent machen Allgemeine Java-Themen 2
H Server Threaded machen. Port-Problem Frage Allgemeine Java-Themen 2
hdi Bilder JAR-kompatibel machen Allgemeine Java-Themen 7
feuervogel Performanzprobleme - Code schneller machen Allgemeine Java-Themen 18
E Speicher frei machen (List) Allgemeine Java-Themen 9
I .jar Datei erstellen und rückwärskompatibel machen Allgemeine Java-Themen 6
C Programm objektorientierter machen Allgemeine Java-Themen 12
P Servlet Eingaben sicher machen Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben