日期:2014-05-20  浏览次数:20752 次

求助 动态选择方法 如何实现 大虾帮忙给个思路~~
具体是这样的   界面上有n个多选框 根据选择的不同情况 进行多重方法嵌套调用
比如 
A、B、C分别对应 A()\B()\C()
选择A B C 三个选项  点击确定 按钮后  调用 A(B(C())) 
需要让程序自动选择对应方法
 

大虾们有神马思路么~

------解决方案--------------------

package test;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class Test {
@SuppressWarnings("unused")
public static void main(String[] args) {
schedule("abc");
}
static void schedule(String methods) {
Test t=new Test();
if (methods.length()==0) {
return;
}
String m=methods.substring(0,1);
String p=methods.substring(1);
try {
Method method=Test.class.getDeclaredMethod(m,String.class);
method.invoke(t,p);
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
void a(String methods) {
System.out.println("Test.a()");
schedule(methods);
}
void b(String methods) {
System.out.println("Test.b()");
schedule(methods);
}
void c(String methods) {
System.out.println("Test.c()");
schedule(methods);
}
void d(String methods) {
System.out.println("Test.d()");
schedule(methods);
}
}