簡體   English   中英

如何在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM