BlogKontaktTagcloud

Variable Parameterlisten in Java

Einmal mehr habe ich diese Woche eine schmerzhafte Lektion in Java programmieren erhalten. Während ich anfangs Semester noch das Gefühl hatte alle Funktionen in Java zu kennen, entdecke ich in letzter Zeit immer wieder neues. So habe ich erst diese Woche mitbekommen das Java variable Parameterlisten, wie sie auch in Ruby oder C# möglich sind, kennt. Das heisst das als letztes Argument der Parmeterliste "type... name" angegeben werden kann. Das sieht dann so aus:

int summe(int ...summanden) {

  int summe = 0;

  for(int i: summanden)

  summe = summe + i;

  return summe;

}

Der Aufruf der Methode kann dann wie folgt aussehen (mit beliebig vielen int in der Aufrufsliste):

 System.out.println(summe(1,2,3,4,5));

Meiner Meinung nach "Syntactical Sugar" denn es nicht wirklich braucht, da es dafür relativ wenig sinnvolle Anwendungen gibt und der "work-around" mit einem Array nicht viel komplizierter ist.

Wer noch mehr interessantes, gebloggtes über Java sucht wird auf javablog.ch fündig. Dieser Blogtipp kommt von bloggerli und die Quelle des Beispielcodes ist ein Artikel im Java Magazin.

Ähnliche Beiträge:
Named parameters in Java (bgl-style)
SCJP, now!
Generics Gala
Generisches toString in Java mit Reflection
Generische Decorator in Java mit Reflection
Comments (10)  Permalink

comments

Mirko Stocker @ 17.06.2006 00:01 CEST
Jep, ziemlich unnötig.. da wären mir beispielsweise Default-Parameter lieber gewesen und bestimmt praktischer.
Rico @ 17.06.2006 00:31 CEST
Sieht doch viel cooooler aus so mit ... also mit [] ;)
Michael Bürge @ 17.06.2006 13:56 CEST
In dem Beispiel bringts in der Tat nicht allzu viel.
Mal überlegen ob sich vielleicht mit
generic(Object ...objs) { /* ... */ }
doch etwas schlaues anstellen lässt.
Hmm, wobei das recht schnell in einer instanceof-Orgie ausarten könnte.
Trotzdem: Nice to know!
Heiko @ 18.06.2006 18:12 CEST
Vielen Dank für die nette Erwähnung :) Ach ja: Für die variable Parameterliste habe ich bis jetzt auch noch keine sinnvolle Anwendung gefunden ;)
leo @ 20.06.2006 19:45 CEST
Eine klever Anwendung für variable Parameterlisten ist also nach wie vor gesucht. Mir ist auch immer noch nichts wirklich praktisches eingefallen.
@Heiko: Bitte, bitte!
Mirko Stocker @ 20.06.2006 20:03 CEST
Ich könnte mir vorstellen, das ganze für die initialisierung von Collections zu nutzen.. allemal besser als 10 mal eine .add Methode oder so aufzurufen. Andererseits wird man Collections wohl nicht oft auf diese Art verwenden..
Petermann @ 13.07.2007 14:25 CEST
Sinvolle Anwendung: Formatiertes printf wie in c verwendet

printf(String format,...)
Moritz @ 12.12.2008 11:58 CEST
Sinnvolle Anwendung: Übergabe von Variablennamen, um dann per Name auf die Variablen zuzugreifen. Dies ist zB über Reflections zu realisieren. Vorstellung einer Anwendung ist zum Beispiel die Realisierung des all_different Constraints für CSPs.
asdf @ 03.08.2009 07:40 CEST
"Während ich anfangs Semester noch das Gefühl hatte alle Funktionen in Java zu kennen, entdecke ich in letzter Zeit immer wieder neues."

Ach nö, was bildest du dir eigentlich ein?!
Bastie @ 15.06.2010 20:49 CEST
sinnvolle Anwendung: i18n

add a comment

The Trackback URL to this comment is:
http://leo.freeflux.net/blog/plugin=trackback(1259).xml

This blog is gravatar enabled.
Your email adress will never be published.
Comment spam will be deleted!

Name*
E-Mail
For Spammers Only
URL
Kommentar*
E-Mail Benachrichtigung bei neuen Kommentaren zu diesem Eintrag
Speichere meine Daten (braucht Cookies)