As devA and VVV have said, that is called "varargs". Effectively, the following two lines of code are equivalent:
public void makeLemonade(String[] args) {
and
public void makeLemonade(String... args) {
the code inside the method would be the same, but when it was called, they would be called differently. The first would need to be called like this:
makeLemonade(new String[]{"lemon1", "lemon2", "lemon3"});
while the second one's method signature could have 0 to (an assumed)infinite number of arguments, but they would all need to be String arguments. All of the following calls would work:
makeLemonade("lemon1");
makeLemonade("lemon4", "lemon7", "lemon11", "lemon12");
makeLemonade();
// ... etc ...
A subtle difference between the two is that you can call makeLemonade() legally here if you're using varargs.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…