リフレクションを介して、実行するメソッドを決定するために何らかの入力 (URL パスなど) を使用する次のコードがあるとします。
// init
map.put("/users/*", "viewUser");
map.put("/users", "userIndex");
// later
String methodName = map.get(path);
Method m = Handler.class.getMethod(methodName, ...);
m.invoke(handler, ...);
これはリフレクションを使用するため、パフォーマンスを向上させることができます。次のように実行できます。
// init
map.put("/users/*", new Runnable() { public void run() { handler.viewUser(); } });
map.put("/users", new Runnable() { public void run() { handler.userIndex(); } });
// later
Runnable action = map.get(path);
action.run();
しかし、そのようなものをすべて手動で作成するRunnable
ことには、独自の問題があります。実行時にそれらを生成できますか? したがって、最初の例のように入力マップがあり、2 番目の例のマップを動的に作成します。確かに、それを生成することは文字列を構築するだけの問題ですが、それをコンパイルしてロードすることはどうでしょうか?
注:パフォーマンスの向上が非常に小さいことはわかっていますが、時期尚早の最適化の完璧な例です。したがって、これは学術的な質問です。ランタイムの生成とコードのコンパイルに興味があります。