Posts Tagged ‘Reflection’

Creare e modificare bytecode Java a runtime con la libreria Javassist

In questo post analizzeremo la libreria Javassist (Java programming assistant) sviluppata da Shigeru Chiba professore presso il Tokyo Institute of Technology, ora un sotto progetto della Community JBoss. Questa libreria permette di manipolare il bytecode di una applicazione Java , in modo da poter cambiare l’implementazione di una classe a runtime (durante cioè il tempo di esecuzione dell’applicazione).

Questa manipolazione del codice è ottenuta durante la fase di caricamento della classe oggetto di modifica (load time) grazie ad un Class Loader fornito con la libreria.

Javassist può essere utile nei seguenti casi:

per compilare a runtime delle porzioni di codice sorgente, ad esempio fornito come input di un programma;
per l’Aspect Oriented Programming (AOP), introducendo dei nuovi metodi in una classe e per inserire advice di tipo before/after/around;
per la runtime reflection, introducendo un meta-oggetto che controlli le chiamate ai metodi.

Java Reflection: esaminare e modificare un oggetto Java a runtime

In questo articolo vedremo come è possibile applicare la tecnica della riflessione (reflection) ad un linguaggio di programmazione come Java.

La reflection in informatica è la capacità di un programma di esaminare e/o modificare a runtime il proprio comportamento, e in particolare la struttura del proprio codice sorgente.

elettronica