请问有一个字符串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/
------解决方案--------------------
学习一下大家的经验。。。