请问有一个字符串a="QQ";
我想用方法:form.QQ()
也就是字符串a,a是可变的,
简单来说当a="QQ" 我用方法form.QQ()
          a="WW" 我用方法form.WW()
怎么实现??

解决方案 »

  1.   

    http://www.j2medev.com/Article/Class3/Class7/200604/1995.html
    看看篇候捷写的,你就能完全明白了
      

  2.   

    运行时调用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 }
      

  3.   

    blog 更新:
     think in java 章后练习答案.....
     http://blog.csdn.net/heimaoxiaozi/