Oggi mi chiedevo perché framework come Hibernate usano il reflection anziché la generazione del codice (ad esempio usando librerie come BCEL o ASM) durante l'avvio della compilation/dell'applicazione.Java reflection vs code generation
È a causa di motivi storici (quando Hibernate
veniva scritto non esisteva alcuna libreria disponibile che consentisse la generazione di codice byte al volo) e ora tutti utilizzano questo approccio?
Suppongo che l'approccio con codice generato sia più veloce di quello che utilizza la riflessione.
La riflessione non è così lenta, specialmente nel contesto di I/O: l'accesso al database/file sarà più lento di diversi ordini di grandezza a causa della riflessione. – assylias
Sì, probabilmente hai ragione. Ho appena fatto questa domanda perché ero curioso della decisione di usare la riflessione. Dopo tanti anni di JVM credo ci siano molte ottimizzazioni che accelerano la riflessione rispetto alla prima versione di 'Java'. – Andna