Enums, oder doch was anderes?

Mappenz

Bekanntes Mitglied
Hallo,

ich habe Modelle mit ganzzahligen Nummern. Nun habe ich mir gedacht, dass ein Enum geschickt wäre.
Java:
public enum Model {
	PNEU0x1(0x1),
	BAND0x3(0x1),
	BAND0x5(0x1),
	LINE0x7(0x1),
	CRANE0x9(0x1),
	BAND0x11(0x1),
	BAND0x13(0x13),
	CRANE0x15(0x15),
	STAMP0x17(0x17),
	LINE0x19(0x19),
	BAND0x21(0x21),
	BAND0x23(0x23),
	CRANE0x25(0x25),
	STAMP0x27(0x27),
	LINE0x29(0x29);
	
	
	private int serial;
	private Models(int serial) {
		this.serial = serial;
	}
	public int serial() {
		return serial;
	}
	
}

Man kann erkennen, die Modelle sind nicht von 1 bis n durchnummeriert. Ich kenne aus C++, dass man den Enum Elementen werte Zuweisen kann. Die obige Lösung gefällt mir nicht. Nehmen wir an es gäbe eine Funktion
Code:
doSomething(Model)
, der Aufruf für BAND0x5 müsste so aussehen
Code:
doSomething(BAND0x5.serial())
. Das ist mehr Schreibarbeit als mir gefällt, außerdem sehe ich die Gefahr, dass jemand stattdessen
Code:
doSomething(BAND0x5)
aufruft. Das würde der Compiler ja schlucken.

Nach meiner eigenen Recherche glaube ich nun, dass man die Nummerierung von Enums in Java nicht beeinflussen kann. Ist das richtig? Gibt es eine bessere Alternative?

Kann ich eine Subklasse von Enum benutzen wie ein enum?

viele Grüße
Michael
 
Zuletzt bearbeitet:

AlexSpritze

Bekanntes Mitglied
Wenn du eine Methode
Code:
doSomething(Model)
hast, dann kannst du sie nicht per
Code:
doSomething(int)
aufrufen.

Die Methode die ein Model bekommt kann natürlich
Code:
serial()
aufrufen.
 
S

SlaterB

Gast
> außerdem sehe ich die Gefahr, dass jemand stattdessen doSomething(BAND0x5) aufruft. Das würde der Compiler ja schlucken.

also der Enum wird nicht direkt als int interpretiert, nein

eine bessere Nummerierung sehe ich nicht, aber du musst doch nur hinter jedem Wert eine Zahl schreiben?
gut, noch Konstruktor, Attribut, getter, aber das ist doch konstanter Aufwand..

in C++ wird direkt eine Nummer zugewiesen? was ist wenn du mal einen String brauchst, oder zwei int-Werte, oder oder,
sowas zu automatisieren ist doch nun wirklich nicht der Rede Wert,
die paar Zeilen, die man in jeder normalen Klasse auch schreiben müsste, tun nicht weh
 
Zuletzt bearbeitet von einem Moderator:
G

Gast2

Gast
Der Aufruf wäre:
Code:
doSomething(Model.PNEU0x1);
.
Innerhalb der Methode wird dann vllt mal serial() aufgerufen.
 

AlexSpritze

Bekanntes Mitglied
Nach meiner eigenen Recherche glaube ich nun, dass man die Nummerierung von Enums in Java nicht beeinflussen kann. Ist das richtig? Gibt es eine bessere Alternative?

Kann ich eine Subklasse von Enum benutzen wie ein enum?

Was meinst du genau mit Nummerierung von Enums? Wenn du ein Enum hast, kannst du mit
Code:
Enum.ordinal()
die Position der Deklaration des Enums ermitteln, das geht dann von 0 bis n-1, wobei n die Anzahl deiner Enums ist.

Von Enums kannst du nicht erben. Wenn du den Code da oben hast, wäre es vielleicht fast sinnvoll eine einfache Klasse daraus zu machen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Enums in Array abspeichern Java Basics - Anfänger-Themen 4
M Vererbung mit Enums Java Basics - Anfänger-Themen 8
M Vererbung Enums vererben Java Basics - Anfänger-Themen 1
G Wie verwendet man Enums Java Basics - Anfänger-Themen 1
O prinzipielle Frage zu enums Java Basics - Anfänger-Themen 3
A Mit Enums in Methoden arbeiten Java Basics - Anfänger-Themen 8
L wie oft werden enums genutzt Java Basics - Anfänger-Themen 3
O Enums? Java Basics - Anfänger-Themen 11
A Enums Java Basics - Anfänger-Themen 3
P Vergleich von Enums Java Basics - Anfänger-Themen 4
D Sind Enums typsichere Konstanten? Java Basics - Anfänger-Themen 15
S Enums und ordinal Java Basics - Anfänger-Themen 3
P Enums - cannot be resolved Java Basics - Anfänger-Themen 2
neurox Kapselung von Enums? Java Basics - Anfänger-Themen 3
H Generics mit Enums Java Basics - Anfänger-Themen 16
GilbertGrape Klärungsbedarf bei Enums Java Basics - Anfänger-Themen 8
S int mit Enums vergleichen Java Basics - Anfänger-Themen 5
F Überbegriff für Klassen, Interfaces, enums? Java Basics - Anfänger-Themen 2
M Switch wie gemacht für Enums - will aber nicht Java Basics - Anfänger-Themen 3
B Dekorator Muster - Irgendwas stimmt hier doch nicht? Java Basics - Anfänger-Themen 4
D Datentypen Datentyperstellung | Kompiler sagt Syntax Error doch ich find keine Lösung Java Basics - Anfänger-Themen 2
F byte, short oder doch int? Java Basics - Anfänger-Themen 6
C Textdatei oder doch eine Datenban Java Basics - Anfänger-Themen 15
R NullPointerException wegen JPanel oder doch nicht ? Java Basics - Anfänger-Themen 7
F Abstrakte Klasse doch zum "Teil" instanzieren? Java Basics - Anfänger-Themen 4
B Set&Get Methoden oder doch nicht? Java Basics - Anfänger-Themen 21
L Byte[] to String, doch bits sind gespiegelt (MSB/LSB) Java Basics - Anfänger-Themen 3
L Erste Schritte Java oder doch lieber PHP? Java Basics - Anfänger-Themen 2
J ResultSet.getStrin - doch kein String? oder wo liegt das Problem? Java Basics - Anfänger-Themen 3
F Variablen Dezimalzahl oder doch nicht? Java Basics - Anfänger-Themen 5
L String: Objekt und doch kein Objekt? Java Basics - Anfänger-Themen 5
T Servlet - oder doch nicht? Java Basics - Anfänger-Themen 4
J NPE - Doch warum? Java Basics - Anfänger-Themen 10
C Array ist befüllt, doch gibt sie immer 0 zurück Java Basics - Anfänger-Themen 3
K Kann man Private-Konstruktoren doch aurufen? Java Basics - Anfänger-Themen 8
feuervogel Datentypen Zwei Sets sind gleich, aber dann doch nicht Java Basics - Anfänger-Themen 9
J Datenbankverbindung klappt doch nicht? IBM DB2 Java Basics - Anfänger-Themen 2
G Simpel, doch ich komm net drauf. Java Basics - Anfänger-Themen 13
data89 In Java ein eigenes Lexikon erstellen? Doch wie? Java Basics - Anfänger-Themen 5
G Frame Applet oder doch was anderes Java Basics - Anfänger-Themen 2
B Generics, oder doch nicht? Java Basics - Anfänger-Themen 7
H int nicht größer als 10, ist doch 32 bit,was da los? Java Basics - Anfänger-Themen 7
E Ich will doch nur einen Hintergrund! Java Basics - Anfänger-Themen 8
G Listen, über Listen. und doch kein Überblick Java Basics - Anfänger-Themen 8
N Set + Iterator oder doch nur zu blöd API zu lesen Java Basics - Anfänger-Themen 32
S Java Compiler? oder doch der Code? Java Basics - Anfänger-Themen 6
G Falsche Java befehle, doch was ist falsch? Java Basics - Anfänger-Themen 9
F Referenz Pointer oder doch nochmal neu suchen ? Java Basics - Anfänger-Themen 2
C Absolute Cursor Position oder doch relative? Java Basics - Anfänger-Themen 4
B String <> long --- Das ist doch nicht inkonvertibel? Java Basics - Anfänger-Themen 4
B Compiler Fehler "{" expected, kann doch nich sein? Java Basics - Anfänger-Themen 9
Thomathy Interface Wie schließt man ein anderes JFrame Fenster? Java Basics - Anfänger-Themen 6
P Probleme mit JUnit-Tests, es kommt was anderes raus als bei manuellen Tests Java Basics - Anfänger-Themen 5
F Methode für Teilbarkeit durch 5 tut was anderes.... Java Basics - Anfänger-Themen 3
L Nur Bestimmte Werte aus einem Array in ein anderes Speichern Java Basics - Anfänger-Themen 11
B Enum innerhalb einer Klasse / anderes Konzept Java Basics - Anfänger-Themen 8
A JDK installieren Oracle JDK oder was anderes? Java Basics - Anfänger-Themen 6
R Vererbung werte von einem Objekt aus ein anderes übertragen Java Basics - Anfänger-Themen 7
B Mit Java anderes Java Programm starten Java Basics - Anfänger-Themen 3
M aus Fenster anderes Fenster öffnen und wieder umgekehrt Java Basics - Anfänger-Themen 5
I JFrame minimieren wenn anderes Programm minimiert wird Java Basics - Anfänger-Themen 1
E Anderes Programm ausführen Java Basics - Anfänger-Themen 8
L Erste Schritte Mal was anderes Java Basics - Anfänger-Themen 9
T TreeSet sortiert in ein anderes kopieren Java Basics - Anfänger-Themen 2
L Anderes Layout für JOptionPane? Java Basics - Anfänger-Themen 6
B Warum haben Java Programme ein anderes Design? Java Basics - Anfänger-Themen 5
D Array auslesen und und Werte in ein anderes array anlegen Java Basics - Anfänger-Themen 5
D Auf anderes Projekt zugreifen Java Basics - Anfänger-Themen 25
M Erste Schritte Anderes Projekt Migrieren Java Basics - Anfänger-Themen 2
V Objekt löschen wenn anderes gelöscht wurde Java Basics - Anfänger-Themen 11
M Rausfinden welches Objekt ein anderes Objekt erzeugt hat?! Java Basics - Anfänger-Themen 3
S BufferedReader liest was anderes als BufferedWriter schreibt Java Basics - Anfänger-Themen 5
B Casten oder vielleicht was anderes? Java Basics - Anfänger-Themen 9
Z Fokus auf anderes Programm setzen Java Basics - Anfänger-Themen 3
D Ein Objekt erzeugt ein anderes Objekt - Wie beide Objekte abspeichern? Java Basics - Anfänger-Themen 5
-horn- Anderes Programm (C,C++, etc) prüfen lassen, ob JAVA installiert ist und wo? Java Basics - Anfänger-Themen 5
A [gelöst]Aus der Klasse heraus auf ein anderes Objekt zugreifen Java Basics - Anfänger-Themen 4
F Anderes Programm beenden Java Basics - Anfänger-Themen 3
S Anderes Fenster schließen Java Basics - Anfänger-Themen 8
C Oberfläche & anderes Java Basics - Anfänger-Themen 6
C array in anderes kopieren ohne zu überschreiben . Java Basics - Anfänger-Themen 13
D Auf anderes Fenster Warten Java Basics - Anfänger-Themen 6
G Was anderes als Scanner Java Basics - Anfänger-Themen 4
T Anderes Fenster öffnen, darin enthaltene Komponenten ändern Java Basics - Anfänger-Themen 2
G Aus Programm anderes Programm starten Java Basics - Anfänger-Themen 2
V Aus einem Lisener ein anderes Programm aufrufen (Übersichtli Java Basics - Anfänger-Themen 6
C Graphics2D auf anderes Graphics2D übertragen Java Basics - Anfänger-Themen 5
G Von einem JinternalFrame auf ein anderes zugreifen! Java Basics - Anfänger-Themen 18
W Hashtable oder was Anderes Java Basics - Anfänger-Themen 8
D Objekt-Variable an anderes Objekt übergeben Java Basics - Anfänger-Themen 9
B 2 d array in ein anderes 2 d array kopieren. ! Java Basics - Anfänger-Themen 8
I Frame schließen, wenn anderes geöffnet wird Java Basics - Anfänger-Themen 2
Dilandau array oder victor oder was ganz anderes? Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben