我想創建一個方法,該方法可以具有任意數量的參數和任何數據類型的任何方法。如何在Java中調用任何具有任意數量的參數和任何數據類型的方法
例如,我想打電話給下面的所有方法動態 無效方法1(INT X,int y)對 無效方法2(INT X,y字符串) 無效方法3(浮法X,大Y,字符串Z)
我使用反射來做到這一點。現在我想知道如何在調用這個動態方法的時候向這些方法傳遞參數。 我做多遠....
MyClass myClass = new MyClass();
Class<?> c = myclass.getClass();
Method[] m = c.getMethods();
int i = 0;
Object [] obj; // obj contains values to be passed
for(Method method : m)
{
if("methodX".equals(method.getName()))
{
break;
}
i++;
}
Method myMethod = m[i];
myMethod.invoke(myClass, obj); //this is not working
我如何可以調用myMethod的?
在調用方法,我得到錯誤「的數量不正確的參數」
可能的重複[如何將方法名稱作爲字符串時調用Java方法?](http://stackoverflow.com/questions/160970/how-do-i-invoke-a-java-method -when-given-the-method-name-as-a-string) – scana
檢查方法名稱以及參數類型。 Apache Commons Lang有一些工具類可以幫助解決這個問題。儘管如此,IMO的主要問題是:_你想用這個做什麼?_ – Thomas