我现在要修改当前的bean和他的父类的所有属性的值并进行修改,如果用自省的方式应该怎么实现啊~!
我现在的做法是用到下面的代码!
BeanInfo info = Introspector.getBeanInfo(beanClass, stopClass);
PropertyDescriptor[] propertys = info.getPropertyDescriptors();
但是得到了property后该怎么修改他的值啊如果是用getReadMethod()方法来获得bean 的get方法的但是怎么用invoke来调用这个方法啊??

解决方案 »

  1.   

    Class cls = Class.forName(MyClsName);
                  Method mtd = cls.getMethod(MyMethodName, new Class[]{String.class});
                  Object obj = (Object)cls.newInstance();
                  mtd.invoke(obj, new Object[]{MyValue});
      

  2.   

    MyClsName、MyMethodName、MyValue分别是自己的类、方法名、参数值
      

  3.   

    楼上的这个方法只能是得到自己的类的方法和属性,我现在要做的是基类和他的父类的的方法和属性,但又不包括所有的父类。
    是可以用
    BeanInfo info = Introspector.getBeanInfo(beanClass, stopClass);
    来指定范围的但是这样就没有一个包含这些所有属性和方法的类了,你在调用invoke的时候无法得到那个object啊!!还有你的那个newInstance()是哪个类的方法啊我怎么没找到啊
      

  4.   

    哦, newInstance()找到了,但是他是调用原来的类还是重新New了一个新类啊,这样是不是会造成很大的开销啊,而且如果我的构造函数是一个有参数的也可以这么用么?