Methoden als Variable speichern?

Kai008

Erfahrenes Mitglied
Ist das irgendwie möglich?
Habe mir eine Klasse, die als KeyListener fungiert geschrieben. Und jetzt sollte er natürlich je nach Tastendruck irgendwas machen. Deshalb wollte ich, damit es nicht so einen hohen "if-Turm" gibt zuerst ein Array mit den Integer-Variablen des KeyEvents anlegen, und ein "Methoden-Array" machen, das Paralell dazu steht. Wenn jetzt KeyEvent.getKeyCode() einer Variable des Array entspricht, will ich die Methode mit der selben Feldaddresse des anderen Arrays aufrufen.
Nur wüsste ich nicht wie "das andere" Array aussehen sollte, falls das überhaupt geht.
 

Ashaman

Mitglied
hi,

also ich glaube das ist etwas umständlich, warum versuchst du es nicht mit einer switch-case Anweisung?

Du fragst den eingegeben wert (getKeyCode()) und weißt ihm im case einen
Methodenaufruf zu.

Solange es nur um einen Char geht sollte das gehen :)
Bei ganzen Strings kannst du mit hashcodes arbeiten.
Schlagt mich, wenn ich mich täusche.
 

zeja

Erfahrenes Mitglied
Du hast doch den Aufwand so oder so... Entweder du füllst ein Array mit Key und Methode oder du packst das wie vorgeschlagen in das switch-case rein. Ist jetzt nicht so ein großer Unterschied vom Aufwand her und du mußt es so oder so nur einmal machen.

Bei switch-case könntest du für die gleichen Befehle auch nen Fall-Trough verwenden:

Java:
switch(char){
case 'a': keyA();break;
case 'b': keyB();break;
case 'c':
case 'd': keyCD();break;
}