Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Передать в метод несколько параметров в виде строки / 7 сообщений из 7, страница 1 из 1
14.05.2018, 18:26
    #39644606
bobr12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать в метод несколько параметров в виде строки
В Java новичок.

Есть сторонний класс (назовем class1), в котором есть метод method1

В качестве параметров метода method1 используется последовательность строк (Str1, Str2, Str3,....). Количество параметров - строк заранее неизвестно, но могу перед вызовом метода определить либо общую строку STR="Str1,Str2,Str3" (но в этом случае при подсовывании он понимает как одну строку), либо массив строк (тоже не получается - говорит - давай мне строки по отдельности).

Пока в голову приходит написать с десяток if -
если параметр один, то method1(Str1)
если параметров два, то method1(Str1, Str2)
если параметров три, то method1(Str1, Str2, Str3)
и т.д.

Но может существует более красивый способ вызова метода.
...
Рейтинг: 0 / 0
14.05.2018, 18:47
    #39644609
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать в метод несколько параметров в виде строки
bobr12,

Какая сигнатура у вашего class1.method1? Или это десяток различных методов, которые различаются только количеством параметров?
...
Рейтинг: 0 / 0
14.05.2018, 19:11
    #39644618
yI211
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать в метод несколько параметров в виде строки
Не совсем понял Ваш вопрос, но в Java есть “списки аргументов переменной длины”.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
package prj001;
class A {
}
public class Main {
 public static void myFunction (Object... args) {
  for(Object obj: args) {
   System.out.println("---: "+obj);
  }
 }
 public static void main(String[] args) {
  //метод получает три аргумента
  myFunction(new Object[] {new Integer(1), new Float(3.14), new Double(12.34)});
  //метод получает два аргумента
  myFunction(new Object[] {"one", "two"});
  //метод получает один аргумент
  myFunction(new Object[] {new A()});
 }
}
...
Рейтинг: 0 / 0
14.05.2018, 19:15
    #39644619
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать в метод несколько параметров в виде строки
С официального сайта Oracle.
https://docs.oracle.com/javase/7/docs/technotes/guides/language/varargs.html
Странно, если массивом не получилось. Сейчас пойду проверю )))
OracleThe three periods after the final parameter's type indicate that the final argument may be passed as an array or as a sequence of arguments.
...
Рейтинг: 0 / 0
14.05.2018, 19:27
    #39644623
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать в метод несколько параметров в виде строки
JDK 1.8 151
следующий тест кейс вполне себе работает. Что не работает у автора, знает только он ))))


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
package test;

public class TestVarargs {

   public static void method1( String...args) {
	   for(Object obj: args) {
		     System.out.println("---: "+obj);
	   }	   
   }
   
	public static void main(String[] args) {
		String a[];
		a = new String[3];
	    System.out.println("-------------------");
	    System.out.println("as arguments");
		method1( "test1", "test2", "test3" );

		System.out.println("-------------------");
	    System.out.println("as array");

		a[0]= new String("array1");
		a[1]= new String("array2");
		a[2]= new String("array3");
		
		method1( a );
	    System.out.println("-------------------");
	}
}


...
Рейтинг: 0 / 0
14.05.2018, 19:33
    #39644624
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать в метод несколько параметров в виде строки
О чем yI211 уже раньше и ответил )))
...
Рейтинг: 0 / 0
15.05.2018, 12:05
    #39644881
bobr12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать в метод несколько параметров в виде строки
Спасибо за помощь, помогли

Оказалось в методе первые 2 строки обязательные, а остальные как String... arg2
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Передать в метод несколько параметров в виде строки / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]