当前位置: 技术问答>java相关
Java中如何通过方法名动态调用方法?
来源: 互联网 发布时间:2015-08-28
本文导语: Java中如何通过方法名动态调用方法?类似于这样一个函数: InvokeFunction(String methodName, List argumentList) | Method cMethod = clazz.getMethod(strMethodName, new java.lang.Class[]{parameterTypesClass}); cMethod.invoke(o...
Java中如何通过方法名动态调用方法?类似于这样一个函数:
InvokeFunction(String methodName, List argumentList)
InvokeFunction(String methodName, List argumentList)
|
Method cMethod = clazz.getMethod(strMethodName, new java.lang.Class[]{parameterTypesClass});
cMethod.invoke(object, new Object[]{parameter});
cMethod.invoke(object, new Object[]{parameter});
|
Method aMethod = getClass().getMethod(yourMethodName,null);
aMethod.invoke(this,null);
aMethod.invoke(this,null);
|
Method cMethod = clazz.getMethod(strMethodName, new java.lang.Class[]{parameterTypesClass});
cMethod.invoke(object, new Object[]{parameter});
的说法是正确的,我再进一步解释一下:
strMethodName是你要调用的方法名字,parameterTypesClass是你要调用的方法的参数的类型的数组,且必须声明为Class[]类型的数组!
object:当你要调用的方法为static时,该参数为null,否则应该是你所要载入的类的实例(即该方法所属的类的实例)
parameter:是你要调用的方法参数(与parameterTypesClass中的类型声明对应)
谢谢!
cMethod.invoke(object, new Object[]{parameter});
的说法是正确的,我再进一步解释一下:
strMethodName是你要调用的方法名字,parameterTypesClass是你要调用的方法的参数的类型的数组,且必须声明为Class[]类型的数组!
object:当你要调用的方法为static时,该参数为null,否则应该是你所要载入的类的实例(即该方法所属的类的实例)
parameter:是你要调用的方法参数(与parameterTypesClass中的类型声明对应)
谢谢!
|
你可以试试public Method getMethod(String name,Class[] parameterTypes)
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。