package com.luojie.demo;
import java.lang.reflect.Method;
public class A {
void test1(int a) {
System.out.println("test1," +a);
}
void test2(int a,int b) {
System.out.println("test2," +a+","+b);
}
void test3() {
System.out.println("test3");
}
void test4() {
System.out.println("test4");
}
public static void main(String[] args) throws Exception {
String m = "test1 10,test2 10 100,test3,test4";
A a = new A();
String[] split = m.split(",");
for (String s : split) {
String[] s1 = s.split(" ");
String methodName = s1[0];
int argsLen = s1.length - 1;
if(argsLen==0) {
Method method = A.class.getDeclaredMethod(methodName);
method.invoke(a);
}else {
Class[] methodTypes = new Class[argsLen];
Object[] methodArgs = new Object[argsLen];
for (int i = 0; i < argsLen; i++) {
methodTypes[i] = int.class;
methodArgs[i]= Integer.valueOf(s1[i+1]);
}
Method method = A.class.getDeclaredMethod(methodName,methodTypes);
method.invoke(a,methodArgs);
}
}
}
}