java使用反射调用带有String[]参数的方法
我使用了StackOverflow和其他网站上的所有建议。我正在尝试使用反射调用一个方法。下面是我的方法的代码:
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
我已经尝试了我能找到的所有建议。有人能帮我吗
谢谢
# 1 楼答案
您需要打印
args[i]
,而不是打印您拥有的内容此外,应该使用
new String[]
而不是new Object[]
来调用该方法# 2 楼答案
方法
my_method()
作为参数接收String[]
,而不是String
。您正在调用不同的方法。代码应该如下所示:要调用它,请将
String[]
作为参数传递:此外,
my_method()
中的循环体应该引用每个元素的位置,而不是数组本身: