检索Java FOR循环中的连锁变量的值

时间:2010-05-24 19:40:24

标签: java loops

我一直在C ++和VB中使用这个“逻辑”并取得了成功,但我在Java中被捆绑... 简单地说,

public void DataProviderExample(String user, String pwd, String no_of_links,
        String link1, String link2, String link3) {

for (int i=1;i<=no_of_links;i++) {
         String link = "link"+i;
         System.out.println(link);
}   

现在,如果变量link1link2link3分别具有值“X”,“Y”和“Z”,则在运行此程序时,我得到了以下输出 -

link1
link2
link3

我想要的是 -

X
Y
Z

有什么想法吗?

4 个答案:

答案 0 :(得分:5)

您可以使用varargs:

public void DataProviderExample(String user, String pwd, String... links) {

for (String link : links) {
         System.out.println(link);
    }
}

...
DataProviderExample("user1", "password1", "X", "Y", "Z");
DataProviderExample("user2", "password2", "Q");

通过这种方式,您可以传递所需数量的链接,运行时自动将这些链接放入一个数组中,您可以使用foreach循环进行迭代。

使用普通数组,调用会更麻烦(当然,除非你已经有数组中的链接):

public void DataProviderExample(String user, String pwd, String[] links) { ... }

DataProviderExample("user1", "password1", new String[] {"X", "Y", "Z"});

答案 1 :(得分:3)

为什么不使用数组呢?

答案 2 :(得分:0)

正如@Jan Kuboschek指出的那样,你应该使用数组。如果不这样做,请查看reflection

答案 3 :(得分:0)

我很感激答案。我试图从外部Excel文件中检索该函数的参数。尝试两种方法,我遇到“java.lang.IllegalArgumentException:参数类型不匹配”错误。有什么想法吗? :)

声明: DataProviderExample(String user,String pwd,String ... links){...} 呼叫: DataProviderExample( “用户1”, “pwd1”, “X”, “Y”, “Z”); DataProviderExample( “用户2”, “pwd2”, “X”, “Y”);

我也尝试了“数组”方法并得到了相同的参数不匹配错误。 宣言: DataProviderExample(String user,String pwd,String [] links){...} 呼叫: DataProviderExample( “用户1”, “pwd1”,{ “X”, “Y”, “Z”}); DataProviderExample( “用户2”, “pwd2”,{ “X”, “Y”});

同样,正在从Excel文件中检索参数user1,user2,pwd1,pwd2和links数组。

感谢。