Un esempio per istanziare un oggetto di una classe chiamata "MiaClasse", ad esempio, è questo:
codice:
Object mioOggetto = Class.forName("MiaClasse").newInstance();
Ovvio che non conoscendo a priori il tipo di oggetto non puoi "lavorarci su facilmente".
Dovrai, ad esempio, utilizzare la Reflection. Un esempio che lancia il metodo main() di un oggetto che non richiede parametri nel costruttore:
codice:
import java.lang.reflect.*;
public class Avvia {
public static void main(String[] args) throws Exception {
Class[] params = { args.getClass() };
System.out.println("Avvio la classe Tester: ");
Object obj = Class.forName("Tester").newInstance();
Method m = Class.forName("Tester").getMethod("main", params);
Object[] pars = { args };
m.invoke(obj, pars);
}
}
Domanda: ha proprio senso andarsi a complicare in questo modo la vita, quando risolvi tutto con un BAT personalizzato, che comunque dovrai creare per passare al programma in nome della classe da avviare?
Ciao.