当前位置: 技术问答>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)