Introspector

11007 ワード

 1 import java.beans.BeanInfo;

 2 import java.beans.Introspector;

 3 import java.beans.PropertyDescriptor;

 4 import java.lang.reflect.Method;

 5 public class IntrospectorDemo {

 6 

 7     public static void main(String[] args) {

 8         // TODO Auto-generated method stub

 9         IntrospectorDemo id=new IntrospectorDemo();

10         try {

11             id.test1();

12             id.test2();

13             id.test3();

14             id.test4();

15         } catch (Exception e) {

16             // TODO Auto-generated catch block

17             e.printStackTrace();

18         }

19     }

20     

21 

22     public class Person

23     {

24         public Person(){

25         }

26         public Person(String name,int age){

27             this.name=name;

28             this.age=age;

29         }

30         private String name;

31         private int age;

32         public String getName() {

33             return name;

34         }

35         public void setName(String name) {

36             this.name = name;

37         }

38         public int getAge() {

39             return age;

40         }

41         public void setAge(int age) {

42             this.age = age;

43         }

44         

45     }

46      

47         // person bean 

48          

49         public void test1() throws Exception{

50             BeanInfo info = Introspector.getBeanInfo(Person.class);

51             PropertyDescriptor[] pds = info.getPropertyDescriptors();

52             for(PropertyDescriptor pd:pds){

53                 System.out.println(pd.getPropertyType()+" "+pd.getName());

54             }

55         }

56         // Person( Object ) bean 

57          

58         public void test2() throws Exception{

59             BeanInfo info = Introspector.getBeanInfo(Person.class,Object.class);

60             PropertyDescriptor[] pds = info.getPropertyDescriptors();

61             for(PropertyDescriptor pd:pds){

62                 System.out.println(pd.getPropertyType()+" "+pd.getName());

63             }

64         }

65         // Person age 

66          

67         public void test3() throws Exception{

68             Person p = new Person();

69             PropertyDescriptor pd = new PropertyDescriptor("age", Person.class);

70             Method method = pd.getWriteMethod();

71             method.invoke(p, 20);

72             System.out.println(p.getAge());

73         }

74         // Person getAge()

75          

76         public void test4() throws Exception{

77             Person p = new Person("xiazdong",30);

78             PropertyDescriptor pd = new PropertyDescriptor("age", Person.class);

79             Method method = pd.getReadMethod();

80             System.out.println(method.invoke(p, null));

81         }

82      

83 }