Kann man in Java in enums ziffern speichern, wenn nein, was ist die Alternative, wenn man sowohl feste zahlen und Strings braucht?

Kalkablagerung  17.12.2021, 19:53

Wozu brauchst du das denn? Also, was ist das Ziel?

musicquestio 
Fragesteller
 17.12.2021, 19:54

ich habe in einer Klasse ein Attribut und will ihm feste Werte zuweisen, dafür ist ja Enum gut. Ich will zb. dass ein attribut nur von "1,2,3,4, black, green" ein wert bekommt

2 Antworten

Du könntest ne Map verwenden. Da kannst als Key nen Integer speichern und als Value den String.

Du könntest den Name der zahl ausschreiben oder einfach einen Integer, der den jeweiligen Wert beinhaltet nutzen.

Ich weiß zwar nicht, weshalb du Zahlen selbst in einem Enum bräuchtest, aber du kannst zum Beispiel den Index dieser "Zahlenwörter" auswerten. Ohne Kontext ist es für mich schwierig zu entscheiden, was hier die beste Lösung wäre.

Woher ich das weiß:Hobby

musicquestio 
Fragesteller
 17.12.2021, 20:00

Wie würde es mit Integer gehen?

0
Kalkablagerung  17.12.2021, 20:06
@musicquestio

Naja, da meine ich halt eher, dass du im Nachhinein überprüfst, ob die Nummer für einen String steht (schwierig zu erklären, was ich meine). Also, dass man zum Beispiel einen Integer hat, der einen Wert hat (zum Beispiel 5) und dann erst im Nachhinein einem String zugeordnet wird.

Also mit einem Switch-Case zum Beispiel, aber das ist weniger eine elegante Variante und würde ich nicht nutzen, außer es ginge nicht anders.

0
Kalkablagerung  17.12.2021, 20:11
@musicquestio

Das ist mir bewusst, aber man könnte statt Zahlen Zahlwörter (wie zum Beispiel "ONE") nutzen und dessen Index abrufen, welche (an der ersten Stelle) 0 wäre... Oder du wertest zum Beispiel in einem Switch-Case die einzelnen Wörter aus, sodass jedem ein Wert zugewiesen wird (das wäre jedoch unelegant).

0