此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【helloruby】截止到2008-07-29 13:23:03的历史汇总数据(不包括此帖):
发帖的总数量:26                       发帖的总分数:640                      每贴平均分数:24                       
回帖的总数量:17                       得分贴总数量:1                        回帖的得分率:5%                       
结贴的总数量:19                       结贴的总分数:447                      
无满意结贴数:3                        无满意结贴分:56                       
未结的帖子数:7                        未结的总分数:193                      
结贴的百分比:73.08 %               结分的百分比:69.84 %                  
无满意结贴率:15.79 %               无满意结分率:12.53 %                  
楼主加油

解决方案 »

  1.   

    既然都到这一步了就可以直接通过getMethods来获得所有的方法(获得一个Method数组对象),对于特定方法的调用可以用该Method对象的invoke来执行该方法
     Class clazz = obj.getClass();
     Method[] ms = class.getMethod(……)
     ms[0].invoke(……)
      

  2.   

    得到Class对象,调用该对象的getDeclaredMethod方法,根据方法名获得表示方法的Method对象.用法如下:
    getDeclaredMethod
    public Method getDeclaredMethod(String name,
                                    Class<?>... parameterTypes)
                             throws NoSuchMethodException,
                                    SecurityException返回一个 Method 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明方法。name 参数是一个 String,它指定所需方法的简称,parameterTypes 参数是 Class 对象的一个数组,它按声明顺序标识该方法的形参类型。如果在某个类中声明了带有相同参数类型的多个方法,并且其中有一个方法的返回类型比其他方法的返回类型都特殊,则返回该方法;否则将从中任选一个方法。如果名称是 "<init>” 或 “<clinit>",则引发一个 NoSuchMethodException。 参数:
    name - 方法名
    parameterTypes - 参数数组 
    返回:
    该类与指定名和参数相匹配的方法的 Method 对象 调用该Method对象的invoke方法,就是执行该对象所代表的具体方法.用法:
    invoke
    public Object invoke(Object obj,
                         Object... args)
                  throws IllegalAccessException,
                         IllegalArgumentException,
                         InvocationTargetException对带有指定参数的指定对象调用由此 Method 对象表示的底层方法。个别参数被自动解包,以便与基本形参相匹配,基本参数和引用参数都随需服从方法调用转换。 
    如果底层方法是静态的,那么可以忽略指定的 obj 参数。该参数可以为 null。 如果底层方法所需的形参数为 0,则所提供的 args 数组长度可以为 0 或 null。 如果底层方法是实例方法,则使用动态方法查找来调用它,这一点记录在 Java Language Specification, Second Edition 的第 15.12.4.4 节中;在发生基于目标对象的运行时类型的重写时更应该这样做。 如果底层方法是静态的,并且尚未初始化声明此方法的类,则会将其初始化。 如果方法正常完成,则将该方法返回的值返回给调用者;如果该值为基本类型,则首先适当地将其包装在对象中。但是,如果该值的类型为一组基本类型,则数组元素不 被包装在对象中;换句话说,将返回基本类型的数组。如果底层方法返回类型为 void,则该调用返回 null。 
    参数:
    obj - 从中调用底层方法的对象
    args - 用于方法调用的参数 
    返回:
    使用参数 args 在 obj 上指派该对象所表示方法的结果 
      

  3.   

    这是非常初级的问题,请访问www.google.com or www.baidu.com 键入“java reflection”