Salve a tutti,
ho bisogno di creare un oggetto factory che sia in grado di caricare dinamicamente a runtime delle classi.
ho creato un file di properties dove associo ad una costante il nome della relativa classe da caricare.
Tutte le classi che andrò ad istanziare estendono una superclasse "BatchProcess".
Il problema è che quando istanzio l'oggetto il costruttore viene richiamato correttamente ma nel momento in cui faccio il casting mi solleva un eccezione.
vi posto la funzione "incriminata"
qualcuno di voi sa dirmi il perchè di questo errore?codice:private static BatchProcess getIstance(String className) throws Exception{ FileInputStream in = new FileInputStream("batchFactory.properties"); Properties p = new Properties(System.getProperties()); p.load(in); String batchClassName=p.getProperty(className); Class<BatchProcess> c = (Class<BatchProcess>)ClassLoader.getSystemClassLoader().loadClass(batchClassName); Constructor<BatchProcess> constr = c.getConstructor(new Class[] {String.class}); BatchProcess batch = (BatchProcess)constr.newInstance(new Object[] {"prova"}); return batch; }
come posso risolvere?
e...
altra domanda...
se invece di castare sempre alla superclasse volessi fare ogni volta il casting alla classe specifica, come posso fare?
grazie mille a chiunque mi sarà d'aiuto
citrus

Rispondi quotando
