The main reason is because it would be potentially ambiguous otherwise....
For example, how could the compiler tell whether arguments are varargs or separate named arguments in a long list of arguments with multple varargs?
Imagine a method signature like:
printNames(String... girls, String... boys); If you do printNames("Lucy", "Jo", "Paul") is Jo a boy or a girl?
As another example of ambiguity, having varargs earlier in the argument list could cause problems when there are overloaded methods. For example:
printFruit(String... apples, String orange); printFruit(String... apples, String grapefruit, String orange); How can the compiler tell whether the second-to-last argument is a grapefruit or an additional apple?
Note that this isn't unique to Java, most languages that support varargs only allow then to be at the end of the argument list for the same reason.
Read full article from java - Why is varargs always the last parameter in a method signature? - Stack Overflow
No comments:
Post a Comment