20

I'm working in Java and the typical way you specify multiple args for a method is:

public static void someMethod(String[] args)

But, I've seen another way a few times, even in the standard Java library. I don't know how to refer to this in conversation, and googling is not of much help due to the characters being used.

public static void someMethod(Object... args)

I know this allows you to string a bunch or arguments into a method without knowing ahead of time exactly how many there might be, such as:

someMethod(String arg1, String arg2, String arg3, ... etc

How do you refer to this type of method signature setup? I think it's great and convenient and want to explain it to some others, but am at a lack of how to refer to this. Thank you.

SnakeDoc
  • 13,611
  • 17
  • 65
  • 97

3 Answers3

21

This way to express arguments is called varargs, and was introduced in Java 5.
You can read more about them here.

Keppil
  • 45,603
  • 8
  • 97
  • 119
8

As a Keppil and Steve Benett pointed out that this java feature is called varargs.

If I'm not mistaken, Joshua Bloch mentioned that there is a performance hit for using varargs and recommends telescoping and using the varargs method as a catch all sink.

public static void someMethod(Object arg) {
    // Do something
}

public static void someMethod(Object arg1, Object arg2) {
    // Do something
}

public static void someMethod(Object arg1, Object arg2, Object arg3) {
    // Do something
}

public static void someMethod(Object ... args) {
    // Do something
}
Dan
  • 1,179
  • 2
  • 10
  • 18
  • 3
    +1 great addition to this conversation. I think this is the link from Jashua Bloch: http://jtechies.blogspot.com/2012/07/item-42-use-varargs-judiciously.html Makes sense, and this seems to be a good way to go about the varags with performance in mind. – SnakeDoc May 21 '13 at 17:33
5

The Parameter method(Object... args) is called varargs. Try this link.

Steve Benett
  • 12,843
  • 7
  • 59
  • 79