首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

动态加载方法解决方法

2012-01-13 
动态加载方法请问有一个字符串a QQ 我想用方法:form.QQ()也就是字符串a,a是可变的,简单来说当a QQ

动态加载方法
请问有一个字符串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/
[解决办法]
学习一下大家的经验。。。

热点排行
Bad Request.