2009-06-18 15 views

risposta

4

Si potrebbe desiderare di guardare BCEL. Senza ulteriori informazioni su ciò che devi fare, è difficile dare una risposta più specifica.

0

Dovresti sicuramente scrivere perché hai bisogno di questa funzione. Se si tenta di aggiungere o sostituire la logica in fase di esecuzione, si potrebbe dare un'occhiata allo scripting API e ad alcuni effettivi implementations.

11

Ci sono diversi modi per farlo.

  • codice sorgente compilazione in fase di esecuzione utilizzando il pacchetto javax.tools e poi caricarli utilizzando un ClassLoader.
  • Se si sta scrivendo su interfacce, è possibile decorare classi con un Proxy.
  • Prendere il percorso più complicato di manipolazione/generazione di bytecode utilizzando una tecnologia come BCEL o ASM (quest'ultimo ha un supporto più aggiornato per le funzionalità della lingua, come le annotazioni) e quindi caricare la classe con ClassLoader.

Immagino ci siano altre opzioni.

Problemi correlati