![](/img/trans.png)
[英]Can I pass an array as arguments to a method with variable arguments in Java?
[英]How to pass an array instead of variable arguments in java?
我想將數組而不是變量參數傳遞給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(Native Method)處的參數個數錯誤sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl。 43)at java.lang.reflect.Method.invoke(Method.java:497)
我該怎么辦?
編輯 :
我已經檢查過,變量參數的值為{myMethod,param1,param2}。
你需要逃跑?
在拆分時,以下代碼應將String拆分為數組,然后可以將其傳遞給該方法:
String s = "myMethod?param1?param2";
String[] tokens = s.split("\\?");
System.out.println(Arrays.toString(tokens));
什么是“ myObject”和“ method”類型?
invoke方法應該具有如下簽名:returntype invoke(Object ... o)// Object,因為params是對象數組{}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.