PropertyDescriptor
PropertyDescripto是用于自动获取字段的Getter和Setter
这个可以从它的构造方法可以看出来,
PropertyDescriptor(String propertyName, Class<?> beanClass,
String readMethodName, String writeMethodName)
后面两个参数 并不是必须的,第一个参数是属性名称,第二个参数类的类型,就是你要传入的bean的class。
PropertyDescriptor property=new PropertyDescriptor("sex",emp);
Method getSex=property.getReadMethod();
System.out.println(getSex.toString());
String sex= (String) getSex.invoke(emplo3,null);
System.out.println(sex);
上面这个例子就是获取emp这个bean的field字段的getSex()方法。然后得到一个Method 变量。调用invoke方法就行
getMethod
String pro="get"+"Sex";
Method getSex=emp.getMethod(pro,null);
System.out.println(getSex.toString());
String sex= (String) getSex.invoke(emplo3,null);
System.out.println(sex);
这里可以看出来了 它们最大的区别是 PropertyDescriptor会自己替我们完成 String pro=”get”+”Sex”; 并且他只能获取字段的Setter和Getter方法。 注意 bean里面的Setter和Getter必须为public
而getMethod方法可以获取本身类及父类定义的public方法。
果然你想获取当前类的其他不是public方法 ,可以使用getDeclaredMethod