Klärungsbedarf bei Enums

Status
Nicht offen für weitere Antworten.

GilbertGrape

Bekanntes Mitglied
Hallo,

ich benutze ein Enum und wollte jetzt Namen für die Konstanten definieren. Dafür wollte ich einfach toString() überschreiben.
Das sieht im Moment so aus:

Code:
public enum IndicationType {
	/**
	 * 
	 */
	INDIKATION(0),
	
	KONTRAINDIKATION(2),
	
	NEBENWIRKUNGEN(3);
	
	private int type;
	
	IndicationType(int type){
		this.type = type;
	}
	
	public String toString(){
		String name = "";
		switch(this.type){
		case 0: name = "Indikation";break;
		case 1: name = "Kontraindikation"; break;
		case 2: name = "Nebenwirkungen";break;
		}
                return name;
	}
}

Ich wollte jetzt fragen, ob man das so macht? Oder gibts dafür eine elegante Lösung???

Danke, GG
 
S

SlaterB

Gast
alter switch-Trick: wenn du direkt im case das return hast, sparts du dir das mühsame break;

übliche Alternative wäre, den Namen im Konstrutor mitzugeben:

INDIKATION(0,"Indikation"),
....

Rest wie beim Typ,


edit:
und wenn schon switch, dann selbstverständlich doch wohl

case INDIKATION: .. break;
...

wie kommt da 0-2 rein?..
 

GilbertGrape

Bekanntes Mitglied
SlaterB hat gesagt.:
alter switch-Trick: wenn du direkt im case das return hast, sparts du dir das mühsame break;
Ok, alter Sparfuchs ;)

SlaterB hat gesagt.:
übliche Alternative wäre, den Namen im Konstrutor mitzugeben:

INDIKATION(0,"Indikation"),
....

Rest wie beim Typ,
ja, das wollte ich wissen, danke.

SlaterB hat gesagt.:
edit:
und wenn schon case, dann selbstverständlich doch wohl

case INDIKATION: .. break;
...

wieo kommt da 0-2 rein?..

naja, so gehts nicht. wenn dann müsste ich das nach int casten.
 
S

SlaterB

Gast
ach wegen switch(this.type),
na ich meine auch

switch(this){
case INDIKATION:
 

Landei

Top Contributor
Besser so, dann vergißt du die Beschreibung nicht, wenn mal ein enum dazukommt:

Code:
public enum IndicationType { 
   INDIKATION("Indikation"), 
   KONTRAINDIKATION("Kontraindikation"), 
   NEBENWIRKUNGEN("Nebenwirkungen"); 
    
   private final String description; 
    
   IndicationType(String description){ 
      this.description= description; 
   } 
    
   public String toString(){ 
       return description; 
   } 
}
 
G

Gelöschtes Mitglied 5909

Gast
wie wäre es mit this.name().toLowercase() ?
 
S

SlaterB

Gast
und den ersten Buchstaben dann wieder groß, was? ;)

man kann die Enum auch direkt Indikation nennen,
ich halte da von Konstanten-Großschreibung nicht so viel
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben