Proper terminology for Object… args

2019-03-24 19:40发布

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.

3条回答
淡お忘
2楼-- · 2019-03-24 20:08

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

查看更多
爱情/是我丢掉的垃圾
3楼-- · 2019-03-24 20:24

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

查看更多
【Aperson】
4楼-- · 2019-03-24 20:26

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
}
查看更多
登录 后发表回答