gpt4 book ai didi

java - 使用反射调用带有 String[] 参数的方法

转载 作者:行者123 更新时间:2023-12-02 06:52:30 26 4
gpt4 key购买 nike

我已经使用了在 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

我已经尝试了所有我能找到的建议。有人可以帮我解决这个问题吗?

谢谢!

最佳答案

方法 my_method() 接收 String[] 作为参数,而不是 String。您正在调用不同的方法。代码应如下所示:

paramString[0] = String[].class;
Method method = cls.getDeclaredMethod("my_method", paramString);

要调用它,请将 String[] 作为参数传递:

method.invoke(obj, new String[]{"x"});

此外,my_method() 中的循环体应该引用每个元素的位置,而不是数组本身:

System.out.println(args[i]);

关于java - 使用反射调用带有 String[] 参数的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17843802/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com