In java, posso utilizzare un oggetto di classe per creare istanze dinamiche di classi di quel tipo?classe instantiate dall'oggetto classe
io voglio alcune funzioni come questa.
Object foo(Class type) {
// return new object of type 'type'
}
In java, posso utilizzare un oggetto di classe per creare istanze dinamiche di classi di quel tipo?classe instantiate dall'oggetto classe
io voglio alcune funzioni come questa.
Object foo(Class type) {
// return new object of type 'type'
}
È possibile utilizzare Class.newInstance
:
Object foo(Class type)
throws InstantiationException, IllegalAccessException {
return type.newInstance();
}
... ma che assume c'è un costruttore a zero argomenti. Un percorso più solido è quello di passare attraverso Class.getConstructor
o Class.getConstructors
, che ti porta a utilizzare il materiale Reflection nel pacchetto java.lang.reflect
.
Uso:
type.newInstance()
Per creare un'istanza utilizzando il costructor vuoto, oppure utilizzare il metodo type.getConstructor (..) per ottenere il costruttore rilevante e quindi richiamarlo.
Sì, si chiama Reflection. è possibile utilizzare il metodo Class newInstance()
per questo.
utilizzare il metodo newInstance().
Si può leggere di più riguardo a: http://java.sun.com/docs/books/tutorial/reflect/index.html Anche questo post ha molto buona informazione: http://stackoverflow.com/domande/37628/Is-what-riflessione-e-perché-è-da-utile – RonK