import java.beans.*; public class Main { public static void main(String[] a) throws Throwable { BeanInfo bi = Introspector.getBeanInfo(GetBeanInfoTestClass.class, Object.class); System.out.println(bi.getPropertyDescriptors().length); PropertyDescriptor[] pd = bi.getPropertyDescriptors(); for (int i=0; i < pd.length; i++) { PropertyDescriptor p = pd[i]; System.out.println(p.getReadMethod()); System.out.println(p.getWriteMethod()); System.out.println(); } } private static class GetBeanInfoTestClass { public void setCorrectProperty(int i) { } public int getCorrectProperty() { return 0; } public int getCorrectReadOnlyProperty() { return 0; } public void setCorrectWriteOnlyProperty(int i) { } void setSomeValue(int i) { } int getSomeValue() { return 0; } public static void setSomeStaticValue(int i) { } public static int getSomeStaticValue() { return 0; } } }