Java コールバック リファレンスについては、こちらをご覧ください http://www.javaworld.com/javatips/jw-javatip10.html
前のサイトで説明されているようなキーとコールバックのディクショナリを作成するという考え方です (ディクショナリ リファレンスhttp://docs.oracle.com/javase/7/docs/api/java/util/Dictionary.html )。
メソッドが 1 つだけ宣言されているコールバック:
public interface MovementCallbackInterface {
public void method();
}
次に、次のようなクラスを作成します。
public class MoveForward implements MovementCallbackInterface {
public void method() {
//Move forward code
}
次に、辞書を作成します。
Dictionary<KeyEvent, MovementCallbackInterface> d;
各キーの実行時に、次のようなコールバックを割り当てます
MoveForward mf = new MoveForward();
d.put(KeyEvent.VK_W, mf);
キーを切り替えたい場合は、ディクショナリのキー割り当てを変更して、新しいコールバックを指すようにするだけです。
d.remove(KeyEvent.VK_W);
d.put(KeyEvent.VK_U, mf);
次に、キーが押されるたびに、辞書でそのキーを検索し、MovementCallbackInterface オブジェクトのメソッドを呼び出します。
d.get(KeyEvent.VK_W).method().
おそらく最速の方法があるかもしれません.C ++では、たとえば関数ポインタを使用できます.C#では、クラス全体ではなく関数のみを含むデリゲートを使用できます。とにかく、このメソッドは Java で動作します。