alternativen zu if .. else ..

Status
Nicht offen für weitere Antworten.

hubertk

Mitglied
Hallo zusammen,

ich lerne gerade Java und habe folgende Frage:

Ich würde gerne zu einem code in Form eines Strings die dazugehörige Nachricht zurückgeben ...
da ich aber vor habe viele Nachrichten zur Auswahl zu haben, ist mir das mit else if ... etwas zu unübersichtlich und ich würde das gerne anders lösen.
Was für Möglichkeiten habe ich ?
evtl. mit einer enum oder einer HashMap ?

Java:
private String getErrorMessage( String code )
{
	if (code.equalsIgnoreCase("100")) {
	   return "Die entsprechende Fehlermeldung zu 100";
	else if (code.equalsIgnoreCase("200")) {
	   return "Die entsprechende Fehlermeldung zu 200";
	} else if ......
        usw.
}

vielen dank schon mal

Hubert
 

Aldimann

Bekanntes Mitglied
Weiß ja nicht was du vor hast, aber kannst du deinen String nicht gegen einen integer ersetzen?
Dann könntest du eine Switch abfrage machen:

Java:
		int abc = 100;
		String fehlermeldung;

		switch (abc) {
		case 100:
			fehlermeldung = "Fehlermeldung zu 100";
			break;
		case 200:
			fehlermeldung = "Fehlermeldung zu 200";
		default:
			break;
		}

Außerdem ist .equalsIgnoreCase nur dafür da, dass er die Groß- und Kleinschreibung ignoriert, macht also bei Zahlen keinen Sinn (ich seh ihn jedenfalls nicht, bitte verbessert mich ;) ).
Ein normales .equals sollte da auch reichen...
 
G

Gastredner

Gast
Du könntest z. B. eine Map verwenden:
Java:
private Map<String,String> codes;

/*
 * Diese Methode einmalig - z. B. im Konstruktor deiner Klasse - aufrufen.
 */
private void initCodes() {
	codes = new HashMap<String,String>();
	codes.put("100", "Die Fehlermeldung zu 100");
	codes.put("200", "Die Fehlermeldung zu 200");
	codes.put("300", "Die Fehlermeldung zu 300");
	// Und so weiter...
}

/*
 * Sollte der String code in deiner Map nicht als Key vorhanden sein,
 * so gibt diese Methode null zurück.
 */
private String getErrorMessage(String code) {
	return codes.get(code);
}
 

hubertk

Mitglied
ok, vielen Dank.
Also : equalsIgnoreCase("100") macht ja tatsächlich dann keinen Sinn !

und die Lösung mit der Map finde ich super. das werde ich versuchen!
Vielen Dank!
 

Landei

Top Contributor
Anderer Vorschlag:
Java:
enum ErrorCode {
E100("100","Fehler 100"),E200("200","Fehler 200",E4711("4711","Zuviel Kölnisch Wasser");
private code;
private description;
private ErrorCode(String code, String description) {
   this.code = code;
   this.description = description;
}
public String getCode() { return code; }
public String getDescription() { return description; }
public static ErrorCode fromCode(String code) {
   for(ErrorCode ec : values()) {
       if(ec.code.equals(code)) return ec; 
   }
   return null;
} 
}
 
M

maki

Gast
Bloch schlägt in seinem Buch eine Map(statisch initialisiert) & statische Methode vor, um von den Werten auf die Instanz zu kommen.
 

hubertk

Mitglied
die ich dann wie folgt anlege :

Java:
	public static HashMap<String,String> ErrMessages = new HashMap<String,String>();

kann ich die denn bei der deklaration schon mit werten füllen?
also z.B. mit einem 2 dim. array mit key und value werten ?
 

0x7F800000

Top Contributor
"direkt" bei der initialisierung eher nicht, aber du kannst eine zeile weiter in einem
Java:
static{
   ...
}
-block alles machen was du willst, unter anderem auch die map füllen.
 

hubertk

Mitglied
maki ,
Bloch schlägt in seinem Buch eine Map(statisch initialisiert) & statische Methode vor, um von den Werten auf die Instanz zu kommen.

hmm, warum eigentlich statisch ?
macht doch nur dann einen sinn, wenn ich von anderen klassen, bzw. objecten auf diese map zugreifen will, oder ?
 

Noctarius

Top Contributor
Nein, so kannt du auch sicherstellen, dass eventuelle (möglicherweise ausversehens) erstellte Instanzen alle die gleichen Daten sehen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Alternativen zu PropertyChangeSupport..? Java Basics - Anfänger-Themen 5
A Alternativen zu Android Studio ??? Java Basics - Anfänger-Themen 14
J Sortier alternativen mit der compareTo Methode? Java Basics - Anfänger-Themen 6
T Input/Output Alternativen zu setText Java Basics - Anfänger-Themen 3
E Alternativen zur binären Serialisierung ? Java Basics - Anfänger-Themen 9
F Alternativen zu runnable JAR? Java Basics - Anfänger-Themen 13
G Hibernate, JDO und Alternativen Java Basics - Anfänger-Themen 4
G isdirectory alternativen Java Basics - Anfänger-Themen 8
J Wartezustand in Endlosschleife - bessere Alternativen Java Basics - Anfänger-Themen 20
M Libraries für Arbeit mit Excel (Alternativen) Java Basics - Anfänger-Themen 2
J Bilder auf Container oder alternativen Java Basics - Anfänger-Themen 2
T if-else Bedingung wird ignoriert Java Basics - Anfänger-Themen 4
I If / Else in Setter? Java Basics - Anfänger-Themen 8
M If-Else Java Basics - Anfänger-Themen 5
monsterherz if / else if mit Fehler den ich leider nicht finde Java Basics - Anfänger-Themen 11
laxla123 Verschachtelte If-Else Schleife Java Basics - Anfänger-Themen 21
laxla123 If-else Java Java Basics - Anfänger-Themen 4
luggas89 If else auch mit unterschiedlichen Antworten Java Basics - Anfänger-Themen 5
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
W Verschachtelte If-else --> finde meinen Fehler nicht Java Basics - Anfänger-Themen 30
pumpgun99 Fehler Meldung "else without if" Java Basics - Anfänger-Themen 3
B Scanner-If/else kleine Abhebungs-Simulation Java Basics - Anfänger-Themen 3
A Übung Else if Java Basics - Anfänger-Themen 2
M Else wird nicht ausgeführt. Java Basics - Anfänger-Themen 5
L If und else bei 2 Dimensionalen Arrays Java Basics - Anfänger-Themen 8
F if else if anfängerfrage Java Basics - Anfänger-Themen 22
T if else Befehl funktioniert nicht richtig Java Basics - Anfänger-Themen 27
C Problem mit If Else If und Überprüfung eines Counters Java Basics - Anfänger-Themen 3
T "Einkauf" & if else Struktur Java Basics - Anfänger-Themen 7
steven789hjk543 Input mit if-else Java Basics - Anfänger-Themen 23
H ERGÄNZUNGSFRAGE: Klammersetzung bei if-else Anweisungen und Schleifen Java Basics - Anfänger-Themen 2
A break; mit Einfluss hinter else if Block Java Basics - Anfänger-Themen 3
R else without if error Java Basics - Anfänger-Themen 5
F Methoden Verschachtelte if else Methode Java Basics - Anfänger-Themen 10
M Java Taschenrechner (if-else) Java Basics - Anfänger-Themen 11
C Variablen 'else' without 'if' Java Basics - Anfänger-Themen 4
F If - Else Java Basics - Anfänger-Themen 3
F Variablen If else: Einer Variable einen Wert hinzufügen oder so? Java Basics - Anfänger-Themen 6
I if/else Statements Java Anfänger Java Basics - Anfänger-Themen 14
M jOptionPane mit if else Java Basics - Anfänger-Themen 16
K Frage zu If & else if Java Basics - Anfänger-Themen 5
R else if anweisungen Java Basics - Anfänger-Themen 2
Y Problem mit If-Else Verzweigung! Java Basics - Anfänger-Themen 9
A Warum funktioniert switch aber nicht if/else? Java Basics - Anfänger-Themen 23
Hijo2006 If-else Java Basics - Anfänger-Themen 6
P Erste Schritte Taschenrechner mit if-else Anweisung Java Basics - Anfänger-Themen 6
T If/ Else If (zurückkehren) Java Basics - Anfänger-Themen 4
O Grosse If / Else verschachtelung übersichlitcher gestlten Java Basics - Anfänger-Themen 6
S Erste Schritte Unterschied "if" und "else if" Java Basics - Anfänger-Themen 27
M If in einem else Java Basics - Anfänger-Themen 14
A boolean Methode ohne If und else Java Basics - Anfänger-Themen 1
J Mehrere IF Anweisungen und dazugehörige ELSE Java Basics - Anfänger-Themen 6
C else in if umschreiben Java Basics - Anfänger-Themen 2
J Fehlermeldung else without if Java Basics - Anfänger-Themen 5
P Compiler-Fehler wieso zeigt der compiler ein else without if? Java Basics - Anfänger-Themen 3
E If...else... Java Basics - Anfänger-Themen 7
G Mehrere If-else-Sätze der Reihe nach durchlaufen lassen Java Basics - Anfänger-Themen 2
C If Else Frage Java Basics - Anfänger-Themen 2
M if, else Anweisung Java Basics - Anfänger-Themen 3
J Ergebnis wird gespammt sowie eine else if Frage Java Basics - Anfänger-Themen 2
A instanceof-if-else-Anweisungen eleganter lösen Java Basics - Anfänger-Themen 5
O if and else geht nur manchmal Java Basics - Anfänger-Themen 17
V Operatoren Java if-else argument Java Basics - Anfänger-Themen 4
D Keine Funktion bei "else" Java Basics - Anfänger-Themen 5
P [ANFÄNGER] if else funktioniert nicht Java Basics - Anfänger-Themen 4
T If, else Problem Java Basics - Anfänger-Themen 12
C IF-Else Verknüpfungen Java Basics - Anfänger-Themen 10
Uzi21 if - else Abfrage Java Basics - Anfänger-Themen 6
T Problem im If-Else-Statement Java Basics - Anfänger-Themen 4
R if funktion ohne else - Bedingung trifft nicht zu, ausgabe nicht nachvollziehbar Java Basics - Anfänger-Themen 7
T If ; else error on system token delete Java Basics - Anfänger-Themen 5
N Best Practice Stilistische Anwendung von if/else-Abfragen Java Basics - Anfänger-Themen 7
L else without if Fehler Java Basics - Anfänger-Themen 14
F try/catch - (else) Java Basics - Anfänger-Themen 11
H Worauf bezieht sich die erste else-Anweisung Java Basics - Anfänger-Themen 9
S if und else problem... Java Basics - Anfänger-Themen 13
Q if-else Logikproblem Java Basics - Anfänger-Themen 4
M Probleme mit else if Java Basics - Anfänger-Themen 15
M Erste Schritte Break-Anweisung bei if-else Java Basics - Anfänger-Themen 6
B OOP If und else in Main class einbinden Java Basics - Anfänger-Themen 9
T Erste Schritte switch case Anweisung und if else Verzweigungen? Java Basics - Anfänger-Themen 6
K Bedingungen else Java Basics - Anfänger-Themen 7
B if-else in einer schleife Java Basics - Anfänger-Themen 14
J Erste Schritte If-Else Idee gesucht Java Basics - Anfänger-Themen 6
T if else Java Basics - Anfänger-Themen 8
R boolean, if-else Java Basics - Anfänger-Themen 7
M if then else geht nicht Java Basics - Anfänger-Themen 10
P int-Wertevergleich mit if-else-Verzweigung Java Basics - Anfänger-Themen 3
P If-else-Verzweigung Java Basics - Anfänger-Themen 9
E Compiler-Fehler Fehler: else without if Java Basics - Anfänger-Themen 11
D Java Einsteiger (boolean, if-else etc.) Java Basics - Anfänger-Themen 7
I Methoden Problem If/Else; Public Void Java Basics - Anfänger-Themen 6
P Anzahl der else if Operatoren begrenzt?? Java Basics - Anfänger-Themen 7
K Mal wieder ein Problem mit If / Else Java Basics - Anfänger-Themen 10
K Anfänger If / Else Problem Java Basics - Anfänger-Themen 5
C if else Abfrage Java Basics - Anfänger-Themen 11
T Umschreiben von switch in if else und umgekehrt Java Basics - Anfänger-Themen 9
C Schleifen, if, else......? Java Basics - Anfänger-Themen 8
2 if und else Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben