Because
String... is a var-arg which is a convenience for passing an array.
So if you do
The compiler will turn it into
which is a valid String array.
If you omit this argument completely as in your example, the compiler does this:
Which is a 0 sized String array and perfectly legal.