Si può caricare una classe dinamicamente utilizzando questo metodo di java.lang.Class
:Quando devono essere inizializzate le classi - al momento del caricamento o al primo utilizzo?
public static Class<?> forName(String name, boolean initialize,
ClassLoader loader)
Secondo the JavaDoc, il secondo parametro viene utilizzato per controllare i tempi di inizializzazione classe (esecuzione di codice di inizializzazione statico). Se true
, la classe viene inizializzata dopo il caricamento e durante l'esecuzione di questo metodo; se false
, l'inizializzazione viene ritardata fino al primo utilizzo della classe.
Ora capisco tutto questo, ma i documenti non dicono come decidere quale strategia utilizzare. È meglio fare sempre l'inizializzazione immediatamente? È meglio ritardarlo sempre al primo utilizzo? Dipende dalle circostanze?
Bene, se si passa 'false', la classe verrà * inizializzata * al primo utilizzo (pigro). Se si passa 'true', la classe verrà inizializzata durante il * caricamento * (non appena il caricamento è completato). Passa 'true' quando sei sicuro che la classe verrà utilizzata nelle prossime righe di codice. Passa 'false' se esiste una buona probabilità che la classe non possa essere utilizzata. – TheLostMind
@icza, "inizializzato" è l'ortografia corretta per il mio dialetto di inglese (australiano).Non è stato necessario modificare la mia domanda per cambiarla. –
@Kissane Ok, scusate, pensavo che solo "inizializzato" fosse corretto. – icza