如何在某个变量上调用parseInt函数?我想做点什么 parseInt.invoke( “23”);
注意:我有一系列存储parseInt的方法
Method[] methods contains the parseInt method
所以......就像 方法[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)
答案 0 :(得分:4)
Method#invoke(Object, Object...)
将第一个参数作为调用此方法的对象,并且从2 nd 参数开始,它接受方法的参数。第一个参数必须是实例方法的引用,而null
方法只需static
。由于Integer#parseInt(String)
是static
方法。 invoke
方法的第一个参数必须为null
:
methods[0].invoke(null, "23");
答案 1 :(得分:-1)
方法[0]是否返回Integer类的parseInt方法? 可能这会对你有所帮助: -
Method m =Integer.class.getMethod("parseInt", String.class);
System.out.println(m.invoke(null, "23"));
String.class是传递给parseInt的参数,即“23”