如何在某个变量上调用parseInt函数? 我想做类似的事情parseInt.invoke("23");
注意:我有一组存储parseInt的方法
Method[] methods contains the parseInt method
所以。。。就像 methods[0].invoke("23");
但是当我这样做时,我得到
java.lang.IllegalArgumentException: wrong number of arguments
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at myproject.MyProject.main(MyProject.java:114)
Method#invoke(Object, Object...)
将第一个参数作为调用此方法的对象,从第二个参数开始,它采用该方法的参数。第一个参数必须是实例方法的引用,并且只是static
方法的null
。由于Integer#parseInt(String)
是一种static
方法。为此,必须null
invoke
方法的第一个参数:
methods[0].invoke(null, "23");
method[0] 是否返回 Integer 类的 parseInt 方法?也许这会帮助你:-
Method m =Integer.class.getMethod("parseInt", String.class);
System.out.println(m.invoke(null, "23"));
字符串.class是传递给parseInt的参数,即"23"