关于内省我只记它和反射的区别,还有就是简单的获取变量方法,后面的都木有看
package day_7_16;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
//复制文件夹
public class JavaBeanDemo {
public static void main(String[] args) throws Exception {
/* // TODO Auto-generated method stub
//ReflectPoint1 pt1 = new ReflectPoint1(3, 5);
Person p = new Person("gezi");
//BeanUtils.setProperty(p, "name", "4");
PropertyUtils.setProperty(p, "name", "heima");
}*/
// 明确获取的是name属性变量
String propertyName = "name";
Person p = new Person("zhangxiaoxiang");
// 获取类里面的属性名的方法,javaBean里面的方法
PropertyDescriptor pd = new PropertyDescriptor(propertyName, p.getClass());
// 获取get方法
Method methodName=pd.getReadMethod();
// 反射里面用invoke调用这个方法,得到传入的值
Object retVal = methodName.invoke(p);
// 输出
System.out.println(retVal);
}
}
class Person
{
private String name;
public Person(String name)
{
this.name=name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
} |