Jetzt Mitglied werden
Kostenlos registrieren und die vielen Vorteile der Webmasterpro-Mitgliedschaft nutzen.
Forum - Portal
Info: Der Stern signalisiert, dass neue Beiträge vorhanden sind.
Alle Foren - Übersicht
Design aktuelle Themen
Entwicklung aktuelle Themen
- Markup (HTML, XML, etc.) und CSS
- Skriptsprachen (PHP, Javascript, etc.)
- Datenbanken (SQL)
- CMS und Frameworks
- Flash und ActionScript
Server aktuelle Themen
- Webhosting und Webspace
- Betriebssysteme (Windows, Linux, etc.)
- Serveradministration
- Überwachung, Sicherheit und Backups
Management aktuelle Themen
Über Webmasterpro.de
Das Portal wird betrieben und entwickelt durch die Team23 Agentur. Die Augsbuger Agentur hat sich auf Community Software und die Entwicklung von Webportalen spezialisiert.
Studium und Ausbildung - Forum
Derzeit sind Sie als Gast in unserem Forum aktiv. Für das Schreiben registrieren Sie sich bitte. Unser Forum ist eine Austauschplattform für Webworker zum Kommunizieren, Helfen, Informieren und Hilfe finden. Auf der rechten Seiten finden Sie eine Forenübersicht über alle Bereiche des Webmaster-Forums. Unterhalb finden Sie alle aktuellen Themen.
Alle Fragen rund ums Studium und Ausbildung finden hier einen Platz. Informieren Sie sich über Angebote und Studiengänge von Universitäten und Fachhochschule aus den Bereichen Design, Informatik und Management (Marketing). Holen Sie sich Antworten zu Bewerbung, Aufnahmeverfahren und Eignungsprüfung, sowie Informationen über Weiterbildung und Ausbildung.
switch case und konstanten
Ich möchte so gerne ein SwitchCase machen, dass mit HashCode funktioniert. Ich bekomme es leider nicht hin. Eclipse meckert dauernd, dass man Konstanten in Switchcase benutzen muss. Aber ich habe doch eine Konstante definiert..
Was mach ich falsch?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | public class SpielActionListener implements ActionListener{
private final int neuesSpiel = "Neues Spiel".hashCode();
public void actionPerformed(ActionEvent ae){
String cmd = ae.getActionCommand();
switch(cmd.hashCode()){
case neuesSpiel:neuesSpiel();break;
case -1363559026 /* "Würfeln".hashCode() */:gewuerfelt();break;
}
}
private void neuesSpiel(){
System.out.println("Neues Spiel gedrückt");
}
private void gewuerfelt(){
System.out.println("Würfeln gedrückt");
}
}
|
Ich kenne zwar nicht deinen kompletten Source Code und habe auch noch nie was mit Java am Hut gehabt, aber mir fallen direkt mal zwei Sachen auf:
Wieso ist neuesSpiel den vom Typ int?
Dann wäre da in dein switch... Denke mal, da sollten eigentlich noch Anführungszeichen um das neuesSpiel
Gruß Seb
Das muss ein Int sein. In Java kann man bei SwitchCase keine Strings zum Vergleichen benutzen. Deswegen benutze ich die Funktion hashCode() um den String in einen Integer Code umzuwandeln.
Was total seltsam ist:
So geht es: private final int neuesSpiel = 2090031295;
Aber so nicht: private final int neuesSpiel = "Neues Spiel".hashCode();
Dabei sind die gleichwertig. "Neues Spiel".hashCode() == 2090031295
Ich möchte es unbedingt mit Hascode machen, da sich der Button ja auch ändern kann. Und wer weiß dann in 10 Jahren, dass man diese Zahl 2090031295 entsprechend mit ändern muss.
EDIT: Alternativ könnte ich es mit if else machen. Nur ich hätte schon gerne gewusst, ob man es nicht doch mit switch machen könnte. Ist auch viel schneller, als so ein lahmes if else :)


