Ho il seguente requisito strano.Come generare bytecode e salvare in un file .class?
mi viene data:
- un elenco di alcuni nomi di metodo.
- Nomi e tipi di parametri dei metodi precedenti.
- La funzionalità dei metodi precedenti. Questo è il seguente: Per ogni parametro, il metodo lo converte in stringa usando
toString
e ottiene una matrice di stringhe. A questo array, il metodo applica una funzionefoo
. La funzionefoo
prende come input un tipoString []
e produceString
. I metodi restituiscono ciò che restituiscefoo
. Il codicefoo
viene fornito all'interno di un oggetto Java e deve essere utilizzato come una black-box.
Le informazioni in 1. e 2. possono essere in un file di testo o XML. A tale scopo, possiamo considerarlo disponibile all'interno di un oggetto Java in qualsiasi modo scegliamo.
L'attività è quella di creare un file .class
(cioè codice bytecode) che implementa tali metodi e può essere eseguito sulla JVM.
Penso che this assembler library sarebbe un modo per farlo. Qualcuno può suggerire un modo più semplice?
[EDIT:] Posso pensare in un altro modo: prima generare il file .java
e quindi compilarlo per ottenere il file .class
.
[Il contesto:] Devo farlo per diverse centinaia di metodi. Voglio il collegamento in modo da poter automatizzare il mio lavoro piuttosto che scrivere manualmente il codice.
Potrebbe per favore dare più contesto, cosa vuoi ottenere ... L'unica ragione per cui vedo "fare" metodi specifici per un comportamento generico (foo) è la sicurezza del tipo che è utile in fase di compilazione ...Come hai intenzione di usare/chiamare il codice generato? – pgras
Non chiamerò il codice generato. Quello che voglio fare è creare una libreria API (jar) che qualcuno possa usare. La classe avrà un nome specifico, quindi sapranno quale API chiamare. – Jus12
OK Vedo il problema con centinaia di metodi, l'elenco dei metodi cambierà spesso o no? possiamo avere un esempio di input che stai utilizzando? – pgras