Warum muss varargs
der letzte Parameter in der Methodensignatur sein?
Ich möchte den Grund wissen.
Warum muss varargs
der letzte Parameter in der Methodensignatur sein?
Ich möchte den Grund wissen.
Der Hauptgrund dafür ist, dass es ansonsten möglicherweise zweideutig wäre....
Zum Beispiel, wie könnte der Compiler feststellen, ob Argumente varargs sind oder separate benannte Argumente in einer langen Liste von Argumenten mit mehreren varargs?
Stellen Sie sich eine Methodensignatur wie folgt vor:
printNames(String... girls, String... boys);
Wenn Sie printNames("Lucy", "Jo", "Paul")
verwenden, ist Jo ein Junge oder ein Mädchen?
Als weiteres Beispiel für Mehrdeutigkeit könnte es Probleme geben, wenn varargs früher in der Argumentliste stehen, wenn es überladene Methoden gibt. Zum Beispiel:
printFruit(String... apples, String orange);
printFruit(String... apples, String grapefruit, String orange);
Wie kann der Compiler feststellen, ob das vorletzte Argument ein Grapefruit oder ein zusätzlicher Apfel ist?
Beachten Sie, dass dies nicht einzigartig für Java ist, die meisten Sprachen, die varargs unterstützen, erlauben sie nur aus demselben Grund am Ende der Argumentliste.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.