Generación y compilación de código de tiempo de ejecución

Digamos que tengo este código que usa alguna entrada (por ejemplo, una ruta URL) para determinar qué método ejecutar, mediante reflexión:

// init
map.put("/users/*", "viewUser");
map.put("/users", "userIndex");

// later
String methodName = map.get(path);
Method m = Handler.class.getMethod(methodName, ...);
m.invoke(handler, ...);

Esto utiliza la reflexión para que se pueda mejorar el rendimiento. Se podría hacer así:

// 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();

Pero creando manualmente todos esosRunnables así tiene sus propios problemas. Me pregunto, ¿puedo generarlos en tiempo de ejecución? Entonces tendría un mapa de entrada como en el primer ejemplo, y crearía dinámicamente el mapa del segundo ejemplo. Claro, generarlo es solo una cuestión de construir una cadena, pero ¿qué hay de compilarla y cargarla?

Nota: Sé que el aumento del rendimiento es tan pequeño que es un ejemplo perfecto de optimización prematura. Por lo tanto, esta es una pregunta académica, estoy interesado en la generación de tiempo de ejecución y la compilación de código.

Respuestas a la pregunta(4)

Su respuesta a la pregunta