动态加载方法
请问有一个字符串a= "QQ "; 
 我想用方法:form.QQ() 
 也就是字符串a,a是可变的, 
 简单来说当a= "QQ "   我用方法form.QQ() 
                               a= "WW "   我用方法form.WW() 
 怎么实现?? 
------解决方案--------------------http://www.j2medev.com/Article/Class3/Class7/200604/1995.html 
 看看篇候捷写的,你就能完全明白了 
------解决方案--------------------运行时调用methods   
 这个动作和上述调用“带参数之ctor”相当类似。首先准备一个Class[]做为ctor的参数类型(本例指定其中一个是String,另一个是Hashtable),然后以此为自变量调用getMethod(),获得特定的Method object。接下来准备一个Object[]放置自变量,然后调用上述所得之特定Method object的invoke(),如图8。知道为什么索取Method object时不需指定回返类型吗?因为method overloading机制要求signature(署名式)必须唯一,而回返类型并非signature的一个成份。换句话说,只要指定了method名称和参数列,就一定指出了一个独一无二的method。        
 #001 public String func(String s, Hashtable ht)   
 #002 {   
 #003 …System.out.println( "func invoked "); return s;   
 #004 }   
 #005 public static void main(String args[])   
 #006 {   
 #007 Class c = Class.forName( "Test ");   
 #008 Class ptypes[] = new Class[2];   
 #009 ptypes[0] = Class.forName( "java.lang.String ");   
 #010 ptypes[1] = Class.forName( "java.util.Hashtable ");   
 #011 Method m = c.getMethod( "func ",ptypes);   
 #012 Test obj = new Test();   
 #013 Object args[] = new Object[2];   
 #014 arg[0] = new String( "Hello,world ");   
 #015 arg[1] = null;   
 #016 Object r = m.invoke(obj, arg);   
 #017 Integer rval = (String)r;   
 #018 System.out.println(rval);   
 #019 }   
------解决方案--------------------blog 更新: 
  think in java 章后练习答案..... 
  http://blog.csdn.net/heimaoxiaozi/
------解决方案--------------------学习一下大家的经验。。。