Получение значения объединенной переменной в цикле Java FOR - PullRequest
0 голосов
/ 24 мая 2010

Я успешно использую эту «логику» в 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);
}   

Теперь, если переменные link1, link2 и link3 имеют значения «X», «Y» и «Z» соответственно, после запуска этой программы я получаю следующий вывод -

link1
link2
link3

То, что я хочу, -

X
Y
Z

Есть идеи?

Ответы [ 4 ]

5 голосов
/ 24 мая 2010

Вы можете использовать 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"});
3 голосов
/ 24 мая 2010

почему вы не используете вместо этого массив?

0 голосов
/ 25 мая 2010

Я ценю ответ.Я пытаюсь получить параметры для функции из внешнего файла Excel.Пробуя оба подхода, которые вы описали, я сталкиваюсь с ошибкой «java.lang.IllegalArgumentException: несоответствие типов аргументов».Есть идеи почему?:)

Объявление: DataProviderExample (String user, String pwd, String ... links) {...} Вызовы: DataProviderExample ("user1", "pwd1", "X", "Y", "Z ");DataProviderExample ("user2", "pwd2", "X", "Y");

Я также попробовал подход "массив" и получил ту же ошибку несоответствия аргумента.Объявление: DataProviderExample (String user, String pwd, String [] links) {...} Вызовы: DataProviderExample ("user1", "pwd1", {"X", "Y", "Z"});DataProviderExample ("user2", "pwd2", {"X", "Y"});

Опять же, параметры user1, user2, pwd1, pwd2 и массив ссылок извлекаются из файла Excel.

Спасибо.

0 голосов
/ 24 мая 2010

Как отмечает @Jan Kuboschek, вы должны использовать массив.В противном случае проверьте отражение .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...