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 }