Jetzt Mitglied werden

Kostenlos registrieren und die vielen Vorteile der Webmasterpro-Mitgliedschaft nutzen.

Login für Mitglieder

Forum - Portal

Info: Der Stern signalisiert, dass neue Beiträge vorhanden sind.

Ü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.


dummy
Beiträge: 253

PN schreiben
Profil ansehen
Homepage besuchen
User ist offline

switch case und konstanten

Link zur Antwort auf "switch case und konstanten" von dummy dummy, am Freitag den 04.09.2009 um 18:10:04

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?

 
java
 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");
    }

}

Link zur Antwort auf "switch case und konstanten" von Sebastian Bechtel Sebastian Bechtel, am Freitag den 04.09.2009 um 18:36:25

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


dummy
Beiträge: 253

PN schreiben
Profil ansehen
Homepage besuchen
User ist offline
Link zur Antwort auf "switch case und konstanten" von dummy dummy, am Freitag den 04.09.2009 um 18:53:39

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 :)