当前位置: 技术问答>java相关
关于Class中的getMethod,和Method中的invoke的问题!
来源: 互联网 发布时间:2017-03-20
本文导语: 本人要使用Class中的getMethod(String name, Class[] parameterTypes)得到一个方法,然后调用其invoke(Object obj, Object[] args)。参数类型依次为String,int,long,boolean;其中int,long,boolean的Class为什么,参数args怎么传入啊,请赐教,谢谢...
本人要使用Class中的getMethod(String name, Class[] parameterTypes)得到一个方法,然后调用其invoke(Object obj, Object[] args)。参数类型依次为String,int,long,boolean;其中int,long,boolean的Class为什么,参数args怎么传入啊,请赐教,谢谢先。
|
int.class, long.class, boolean.class
invoke(obj, new Object[]{ "string", new Integer(1), new Long((long)1), new Boolean(false));
invoke(obj, new Object[]{ "string", new Integer(1), new Long((long)1), new Boolean(false));
|
Invokes the underlying method represented by this Method object, on the specified object with the specified parameters. Individual parameters are automatically unwrapped to match primitive formal parameters, and both primitive and reference parameters are subject to widening conversions as necessary. The value returned by the underlying method is automatically wrapped in an object if it has a primitive type.
If the corresponding formal parameter has a primitive type, an unwrapping conversion is attempted to convert the object value to a value of a primitive type. If this attempt fails, the invocation throws an IllegalArgumentException.
我想大概意思就是用Long 来表示long类型,系统会自动unwrapped to match primitive
If the corresponding formal parameter has a primitive type, an unwrapping conversion is attempted to convert the object value to a value of a primitive type. If this attempt fails, the invocation throws an IllegalArgumentException.
我想大概意思就是用Long 来表示long类型,系统会自动unwrapped to match primitive
|
Object obj, Object[] args
obj为对象主体,args为参数列表数组,如果参数为原始数据类型,则使用它的对应java对象。比如int对应Integer
要传入args,先创建一个定长的Object数组,然后以参数为基创建出所有参数对象,最后将这些对象按顺序push进Object数组即可
obj为对象主体,args为参数列表数组,如果参数为原始数据类型,则使用它的对应java对象。比如int对应Integer
要传入args,先创建一个定长的Object数组,然后以参数为基创建出所有参数对象,最后将这些对象按顺序push进Object数组即可
|
比如java test.test1 c1 c2 -t c4
那么args[0]= "c1",args[1]="c2",依此类推
那么args[0]= "c1",args[1]="c2",依此类推