Why does varargs
have to be the last parameter in method signature?
I want to know the reason.
Because it makes the compiler's life simpler. There's no real reason why it couldn't have more arguments after, but it would require a much more complex compiler and so the spec was written that way.