一个简单的PropertyDescriptor类的例子

package testPoi;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
public class TestPropertyDescriptor {
     public static void main(String[] args) {
          Person person = new Person();
          person.setName("zhangsan");
          person.setAge(18);
          getFiled(person, "name");//结果输出 zhangsan
     }
     
     // 通过反射得到name 
     // 通过得到属性的get方法(pd.getReadMethod())再调用invole方法取出对应的属性值
     // 调用set方法()
     private static void getField(Object object, String field) {
          Class<? extends Object> clazz  = object.getClass();
          PropertyDescriptor pd = null;
          Method getMethod = null;
          Method setMethod = null;
          try {
              pd = new PropertyDescriptor(field, clazz);
              if (null != pd) {
                   // 获取field属性的get方法
                   getMethod = pd.getReadMethod();
                   Object getInvoke = getMethod.invoke(object);
                   // 获取field属性的set方法
                   setMethod= pd.getWriteMethod();
                   Object setInvoke = setMethod.invoke(object,"123");
                   System.out.println(setInvoke+ getInvoke);
              }
          } catch (Exception e) {
              e.printStackTrace();
          }
          
     }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值