Передача переменных параметров в метод - PullRequest
2 голосов
/ 20 марта 2012

Привет, есть ли способ передать переменные аргументы в метод?

public void unMarshalling(String type, int number){

}

Так что вместо int я могу сделать свой метод таким, чтобы я мог передавать типы данных float, double, string и другие примитивные (+ string). Любые простые примеры будут высоко оценены! Большое спасибо!

Ответы [ 3 ]

12 голосов
/ 20 марта 2012

Попробуйте:

public void unMarshalling(Object ... params) {

}

Теперь вы можете передать любое количество аргументов любого типа:

unMarshalling(23);
unMarshalling("Hello");
unMarshalling("Hello", 45.3);
0 голосов
/ 20 марта 2012

Java имеет функциональность var-args, это означает, что вы можете передавать любое количество аргументов в var-args данного примера типа -

  public void myMethod(int...args)
 {
 }

вы можете вызывать это как методы, как показано ниже -

  myMethod(3);

или myMethod (3,4);

или myMethod (3,65,74);и т. д.

Вы можете указать любой тип аргумента, кроме int.

Пожалуйста, оставьте var-args последним аргументом, если у вас более одного аргумента.

0 голосов
/ 20 марта 2012
public void unMarshalling(String a, int b){}
public void unMarshalling(String a, float b){}
public void unMarshalling(String a, double b){}
public void unMarshalling(String a, String b){}

Он будет знать, какой из них вызывать в зависимости от типа. Если на самом деле есть только одна функция, вы можете поместить ее «мясо» в String / int, затем в String / float вы можете преобразовать float в int как вам угодно и вызвать String / int.

public void unMarshalling(String a, float b)
{
  unMarshalling(a,(int)b);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...