Java Reflection fornisce un meccanismo per l'introspezione di un oggetto in fase di esecuzione. Nessun ripensamento, questa è una grande funzionalità, ma rompe tutte le convenzioni di Refactoring!Java Reflection e il dolore nel Refactoring
Non esiste un modo semplice (diverso da File Search
) anche nei moderni IDE per sapere a quale attributo viene fatto riferimento e dove. Questo rende i Refactoring molto più complessi (noiosi!) E soggetti a errori.
Per essere sinceri, non è solo il Reflection API
; Hibernate mapping files (hbm.xml)
e JSP files
si riferiscono entrambi agli attributi come String e quando si rifatta il nome dell'attributo, è necessario modificare manualmente tutti questi punti.
Peggio ancora, le modifiche nei file di mapping di Hibernate o nei file JSP causano errori di runtime.
Sono interessato a sapere come altri programmatori gestiscono questo in Java. Ci sono alcuni strumenti? Uso Eclipse/IBM RAD come piattaforma di sviluppo principale. Normalmente utilizziamo un constant
per definire l'attributo e usarlo quando possibile ma non è sempre possibile.
Sarei anche interessato a come altri linguaggi gestiscono questo!
IntelliJ ha abbastanza buoni ganci nei file di configurazione JSP, Spring e Hibernate in questi giorni, che sono tutti "refactoring aware". Non sono un utente di Eclipse, ma ho pensato che avesse qualcosa di simile. –
anche netbeans ha alcuni strumenti intelligenti di refactoring (spring, web.xml, ecc.) – dfa
Penso che Eclipse possa refactoring anche sui file Hibernate. –