如何解决复杂条件下的程序流的控制问题?
帖子 http://www.cjsdn.com/post/view?bid=1&id=39182&sty=1&tpg=1&age=0 提出了一个程序设计中常常遇到的问题,即如何解决复杂条件下的程序流的控制问题。在此,我利用Reflection提供一种解决方案,给定一个key,调用给定key对应的函数。这样原问题实际上转换为利用条件生成合适的key的问题。生成key的一种可行的方案是将这些条件转换为对应的字符串,再将字符串连接起来。
方案的基本思路是利用HashMap形成一个函数的哈西表,主要是使用下面代码重的类:
源代码见附件:
MethodMap.rar (1.55k)
方案的基本思路是利用HashMap形成一个函数的哈西表,主要是使用下面代码重的类:
import java.util.HashMap;
import java.lang.reflect.*;
public class MethodMap {
private HashMap map;
MethodMap() {
map = new HashMap();
}
public void addJumpPoint(String key, Method jumpPoint){
map.put(key, jumpPoint);
}
public void removeJumpPoint(String key){
map.remove(key);
}
public void jumpTo(String key, Object obj, Object[] args){
try {
Method m = (Method)map.get(key);
m.invoke(obj, args);
} catch (java.lang.IllegalAccessException e){
e.printStackTrace();
} catch (java.lang.reflect.InvocationTargetException e){
e.printStackTrace();
}
}
}
源代码见附件:
MethodMap.rar (1.55k)