|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Jan 2003
Città:
Messaggi: 4421
|
...Java Reflection...
...avendo una classe di beans come è possibile visualizzare il contenuto di tutti i suoi elementi per mezzo della reflection?...
...grazie ciao... |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Le specifiche JavaBeans stabiliscono come denominare i metodi. Ci saranno quindi dei metodi con nome setXXX, getXXX (o eventualmente isXXX nel caso di proprietà boolean) e per i listener, addXXXListener/removeXXXListener. A quel punto prendi in considerazione solo i metodi che sono validi secondo le specifiche. Se ad esempio hai una proprietà 'Name' di tipo String, i metodi set/get possono essere: public void setName (String n) public String getName ()
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) Ultima modifica di andbin : 31-07-2007 alle 17:28. |
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Usa Introspector (java.beans). Ti fai dare il BeanInfo:
BeanInfo info = Introspector.getBeanInfo(instance.getClass()); e sei a cavallo. Per leggere le proprietà leggi il BeanInfo, ad esempio in un ciclo: Codice:
for(PropertyDescriptor pd : info.getPropertyDescriptors()) {
String name = pd.getName();
Object value = pd.getReadMethod().invoke(instance);
}
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Devo ammettere che non conosco questo package.
Vedrò di colmare la lacuna.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Se ti facessi una lista di quelli che non conosco io finiremmo domattina
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#6 | ||
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
Quote:
__________________
My gaming placement |
||
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
http://www.hwupgrade.it/forum/showth...6#post18132516
se qualche moderatore vuole unire le discussioni. |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Sono questioni diverse. Qui interessa più che la riflessione in sè una sua applicazione, che è per altro semplificata da uno strumento ad hoc. Diciamo che è sempre riflessione ma è applicabile solo in certi casi.
All'allegro "ciao modestia" di franksiska rispondo con un altrettanto allegro: qui bisogna volare non bassi ma rasoterra. Una settimana scrivo una cosa e quella dopo scopro che c'è un altro modo per farla che è due volte più semplice, sicuro e standard. E questo da tempi ormai immemori. Insomma non è modestia, è realismo
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
se non so una cosa vengo qua e tu (ti dò del tu) o altri me li risolvete, se io sò una cosa tu la risolvi tipicamente meglio..... spero col tempo di acquistare abbastanza esperienza da poter reggere il confronto anche con quelli come te e comunque, grazie per le delucidazioni sempre impeccabili
__________________
My gaming placement |
|
|
|
|
|
|
#10 |
|
Bannato
Iscritto dal: Jan 2003
Città:
Messaggi: 4421
|
...ottimo grazie...ecco cosa ne è nato...
Codice:
public static void main(String args[]){
Beans beans = new Beans();
beans.setIntero(1);
beans.setLungo(2);
beans.setStringa("3");
try {
BeanInfo info = Introspector.getBeanInfo(beans.getClass());
PropertyDescriptor[] pd = info.getPropertyDescriptors();
for(int i=0;i<pd.length;i++) {
Method name = pd[i].getReadMethod();
Object value = (Object)pd[i].getReadMethod().invoke(beans, null);
System.out.println(value);
}
} catch (Exception e) {
System.out.println(e);
}
}
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
invoke restituisce un Object. La conversione esplicita da Object a Object (esplicitamente prevista dalle specifiche del linguaggio per una ragione che non ho mai compreso) dovrebbe essere superflua.
(Object)pd[i].getReadMethod().invoke(beans, null);
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#12 | |
|
Bannato
Iscritto dal: Jan 2003
Città:
Messaggi: 4421
|
Quote:
...grazie ancora... ...ciao... |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:54.




















