类名和方法名都是以字符串形式传送的. 但未知方法的参数.
 有没有更好的方法找到类中的方法?
 public void execMethod(String strClassName, String strMethodName, String[] para) {
     Class cls = Class.forName(strClassName);
     Method[] methods = cls.getMethods();
     Method method;
     for (Method m : methods) {
if (m.getName().equals(strMethodName)) {
    method = m;
    break;
}
     }
          }

解决方案 »

  1.   


    //也可以这样,但是你调用的这个方法的参数只能是,String了,因为你传进来的参数的数组是String类型的,假如你改为Object[]那就是使用与其他方法了public void execMethod(String strClassName, String strMethodName, String[] para) throws ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException { 
            Class cls = Class.forName(strClassName); 
            System.out.println(cls.getMethods());
            Class[] argsClass = new Class[para.length];   
            for (int i = 0; i < para.length; i++) {   
                argsClass[i] = para[i].getClass();   
            }   
            Method method = cls.getDeclaredMethod(strMethodName, argsClass);  
            method.invoke(null, "zhao","name");
       }
      

  2.   

    谢谢.因为是针对特定的程序. 我要解决的是不用遍历去找指定的方法.
    正因为重载所以我才没有更好的方法. 
    程序本身并没有错(因为项目设计中排除了那些情况). 
    只是怕 for (Method m : methods) 耗时和耗资源.
    现在没有更好的解决方案.