针对JavaBean
什么是JavaBean?(私有的字段/公开的空参构造方法/每个字段存取方法)
PropertyDescriptor表示:描述哪个字节码对象和该类的属性
pd.getWriteMethod():相当于setter()方法
pd.getReadMethod():相当于getter()方法
BeanInfo表示:某个字节码对象的所有属性的描述
任务类都会至少有一个class属性
package cn.itcast.javase.introspector;
import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
import org.junit.Test;
public class Demo1 {
@Test
public void test1() throws Exception{
Student s = new Student();
//描述某个JavaBean的属性描述器
//参数一:表示描述哪个属性
//参数二:表示描述哪个类的字节码对象
PropertyDescriptor pd = new PropertyDescriptor("name",Student.class);
Method writer = pd.getWriteMethod();
writer.invoke(s,"jack");
System.out.println(s.getName());
}
@Test
public void test2() throws Exception{
//取得JavaBean对象的所有属性描述对象
BeanInfo bi = Introspector.getBeanInfo(Student.class);
//取得该JavaBean对象所有属性的集合
PropertyDescriptor[] pds = bi.getPropertyDescriptors();
for(PropertyDescriptor pd : pds){
//显示属性的名称
System.out.println(pd.getName());
}
//结论:属性是含有getXxxxx(),该xxxxx是属性名
}
}