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
 
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?..
 
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.
 
ach wegen switch(this.type),
na ich meine auch

switch(this){
case INDIKATION:
 
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; 
   } 
}
 
wie wäre es mit this.name().toLowercase() ?
 
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.

Zurück
Oben