package pm_cn.itcast.bean;
import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
import org.junit.Test;
public class IntrospectorDemo {
@Test
public void test1() throws IntrospectionException{
// 获得 bean 的 信息
BeanInfo beanInfo = Introspector.getBeanInfo(Student.class);
PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
// 想查看 到底 Student 类 有多少个 属性
System.err.println(pds.length);
}
@Test
public void test2() throws Exception{
Student s = new Student();
// 获得 bean 的 信息
BeanInfo beanInfo = Introspector.getBeanInfo(Student.class);
PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
for (PropertyDescriptor pd : pds) {
System.err.println(pd.getName());
if(pd.getName().equals("name")){
// 获得 其 写方法 , setName方法
Method writeMethod = pd.getWriteMethod(); // 获得 set方法
writeMethod.invoke(s,"高杰"); // s.setName("高杰");
System.out.println(s.getName());
System.out.println("============");
Method readMethod = pd.getReadMethod();
Object value = readMethod.invoke(s, null); // s.getName();
System.out.println("name : " + value);
System.out.println(pd.getPropertyType());
}
}
}
}
import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
import org.junit.Test;
public class IntrospectorDemo {
@Test
public void test1() throws IntrospectionException{
// 获得 bean 的 信息
BeanInfo beanInfo = Introspector.getBeanInfo(Student.class);
PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
// 想查看 到底 Student 类 有多少个 属性
System.err.println(pds.length);
}
@Test
public void test2() throws Exception{
Student s = new Student();
// 获得 bean 的 信息
BeanInfo beanInfo = Introspector.getBeanInfo(Student.class);
PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
for (PropertyDescriptor pd : pds) {
System.err.println(pd.getName());
if(pd.getName().equals("name")){
// 获得 其 写方法 , setName方法
Method writeMethod = pd.getWriteMethod(); // 获得 set方法
writeMethod.invoke(s,"高杰"); // s.setName("高杰");
System.out.println(s.getName());
System.out.println("============");
Method readMethod = pd.getReadMethod();
Object value = readMethod.invoke(s, null); // s.getName();
System.out.println("name : " + value);
System.out.println(pd.getPropertyType());
}
}
}
}