Tengo el siguiente requisito raro.¿Cómo se genera bytecode y se guarda en el archivo .class?
se me da:
- una lista de algunos nombres de los métodos.
- Nombres y tipos de parámetros de los métodos anteriores.
- La funcionalidad de los métodos anteriores. Esto es como sigue: Para cada parámetro, el método lo convierte en cadena usando
toString
y obtiene una matriz de cadenas. Para esta matriz, el método aplica una funciónfoo
. La funciónfoo
toma como entrada un tipoString []
y produceString
. Los métodos devuelven lo quefoo
devuelve.foo
El código se da dentro de un objeto Java y se debe acceder como un recuadro negro.
La información en 1. y 2. puede estar en un archivo de texto o XML. Para este propósito, podemos considerar que está disponible dentro de un objeto Java de la manera que elijamos.
La tarea es crear un archivo .class
(es decir, bytecode) que implemente esos métodos y se pueda ejecutar en la JVM.
Creo que this assembler library sería una forma de hacerlo. ¿Alguien puede sugerir una manera más fácil?
[EDIT:] Puedo pensar de otra manera: primero genere el archivo .java
y luego compílelo para obtener el archivo .class
.
[El contexto:] Tengo que hacer esto por varios cientos de métodos. Quiero el atajo para poder automatizar mi trabajo en lugar de escribir el código manualmente.
Podría por favor dar más contexto, ¿qué quiere lograr ... La única razón que veo para "hacer" métodos específicos para un comportamiento genérico (foo) es seguridad tipo que es útil en tiempo de compilación ...¿Cómo vas a usar/invocar el código generado? – pgras
No llamaré al código generado. Lo que quiero hacer es crear una biblioteca API (jar) para que alguien la use. La clase tendrá un nombre específico, por lo que sabrán a qué API llamar. – Jus12
OK Veo el problema con cientos de métodos, ¿la lista de métodos cambiará a menudo o no? ¿Podemos tener un ejemplo de la entrada que estás usando? – pgras