PropertyDescriptor和getMethod的区别

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值