我已經在StackOverflow和其他網站上使用了我可以找到的所有建議。我正在嘗試使用反射調用一個方法。這裏是我的方法的代碼:使用反射調用String []參數的方法
public void my_method(String[] args) {
for(int i=0; i<args.length; i++)
{
System.out.println(args);
}
}
下面是我用於反射代碼
Class[] paramStringArray = new Class[1];
paramStringArray[0] = String[].class;
String[] argu = {"hey", "there"};
Method method = cls.getDeclaredMethod("my_method", paramStringArray);
method.invoke(obj, new Object[]{argu});
我的問題是,當我運行程序時,我看到打印的輸出:[Ljava。 lang.String; @ 70a6aa31 [Ljava.lang.String; @ 70a6aa31
我試過了所有我能找到的建議。有人可以幫助我嗎?
謝謝!
'Object#toString()'是你的關鍵字。當你還不知道如何打印對象時,爲什麼要嘗試高級反射主題?慢一點。 –
'args'是一個'String []'。它沒有自定義的'toString()'方法來打印它的內容。使用'Arrays.toString(args);'返回一個帶有數組內容的String。 –