Quindi la questione è che hai un oggetto di cui non sai a priori quante/quali proprietà ha e vorresti "enumerare" le proprietà per stamparle?Originariamente inviato da dardo
dalla servlet istanzio la classe che fa il lavoro mi restituisce di conseguenza un bean di cui non conosco le proprietà.
A questo punto con session.getAttribute("...") avrò un bean ancora sconosciuto.
come proseguire?
La prima cosa che mi viene in mente è quella di usare le classi del package java.beans, dedicato alla gestione dei bean e alla loro "introspezione".
Ecco un esempio basilare per elencare tutte le "proprietà" (come intese secondo le specifiche JavaBean) di un JLabel:
Output parziale per JLabel:codice:import java.beans.*; import javax.swing.*; public class Prova { public static void main(String[] args) { try { enumeraProprieta(new JLabel()); } catch (Exception e) { System.err.println(e); } } public static void enumeraProprieta(Object obj) throws IntrospectionException { BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass()); PropertyDescriptor[] propsDesc = beanInfo.getPropertyDescriptors(); for (int i = 0; i < propsDesc.length; i++) { System.out.println("Property: " + propsDesc[i].getName()); } } }
codice:Property: UI Property: UIClassID Property: accessibleContext Property: actionMap Property: alignmentX Property: alignmentY Property: ancestorListeners Property: autoscrolls Property: background Property: baselineResizeBehavior Property: border Property: component .......altro

Rispondi quotando