有一个方法接受两个参数类名和方法名,这个方法需要利用java反射去执行接收到的类下面的方法,请教如何实现。

解决方案 »

  1.   

    public void exe(String classNm, String methodNm){
          Class myClass = Class.forName(classNm);//得到类名的Class类
          Method method=myClass.getMethod(methodNm);
          method.invoke(myClass);
    }
      

  2.   

    myClass.getDeclaredMethod(methodNm);这个方法也能得到 全部的Method 得到方法后 就可以执行这个方法, method.invoke();public void exe(String classNm, String methodNm){
          Class myClass = Class.forName(classNm);//得到类名的Class类
           Object obj = myClass.newInstance() ;//实例化一个对象。
          Method method=myClass.getMethod(methodNm);
          Object value = method.invoke(obj,new Object[]{});//调用无参的方法并返回
    }
      

  3.   


    public void exe(String classNm, String methodNm){
          Class myClass = Class.forName(classNm);//得到类名的Class类
           Object obj = getDeclaredConstructor(new Class[]{}).newInstance()//带参实例化一个对象。
           Method method=myClass.getMethod(methodNm);
          Object value = method.invoke(obj,new Object[]{});//调用无参的方法并返回
    }
      

  4.   

    递归:public void exe(int n){
         if(0 == n){
              return 0; 
         }else{
              return n*exe(n-1);
         }  
    }
      

  5.   


    n!public void exe(int n){
         if(1 == n){
              return 1; 
         }else{
              return n*exe(n-1);
         }  
    }
      

  6.   

    唉 void还要return 
    呵呵
      

  7.   

    z
    这样应该可以了,反射的应用应该就是这个流程。
     class mc=class.forname();
     object obj=mc.newinstance();
     method m=mc.getMethod(num);
     object value=method.invoke(); 学习!