我想把数组而不是变量参数传递给java方法。在类似的问题中,人们回答说数组和椭圆没有什么不同,所以它必须起作用。但这对我没用。这是我的密码:
String[] parameters = text.split("[?]");
Object[] params = Arrays.asList(parameters).toArray(new Object[parameters.length]);
params[0] = myObject;
method.invoke(params)
其中文本类似于: myMethod?param1?param2 ...
但也可能是 myMethod
以防方法没有参数。
java.lang.illegalargumentexception:sun.reflect.nativemethodaccessorimpl.invoke0(本机方法)处sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl)处的参数数目错误。java:62)在sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl。java:43)在java.lang.reflect.method.invoke(方法。java:497)
我该怎么办?
编辑时间:
我已经检查过了,变量参数的值是{mymethod,param1,param2}。
2条答案
按热度按时间rbl8hiat1#
你得逃走
?
拆分时,下面的命令应将字符串拆分为可以传递给方法的数组:ego6inou2#
“myobject”和“method”的类型是什么?
invoke方法应该有如下的签名returntype invoke(object。。。o) //对象,因为params是对象数组{}