Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Et Collection-parameter er praktisk når en gjerne har verdiene i en eksisterende datastruktur, f.eks. som et felt i et objekt eller et resultat fra en tidligere operasjon, slik som over. Men hvis en ofte må lage Collection-objektet kun for dette formålet, så er det imidlertid ikke så praktisk. Anta f.eks. at en ønsker å initialisere en Person med en samling barn og bruke en eksisterende addChild- eller addChildren-metode. Dette er ikke særlig praktisk, som kode-eksemplene under viser:

...

Java tilbyr en mekanisme kalt varargs, for dette formålet. Enkelt sagt kan en definere at siste argument er en samling verdier som angis etter hverandre i argumentlista, istedenfor å eksplisitt lage en tabell eller liste. Argumentene samles automatisk opp i en (ny-allokert) tabell, som metoden så kan iterere over. Merk at det godt kan være andre parametre før varargs-parameteret, men det kan ikke være noen etter. Dette skyldes at det da lett blir tvetydig om et argument hører til varargs-parameteret eller et påfølgende parameter. Merk også at en ikke kan spesifisere minimum og/eller maksimum antall argumenter. Med varargs så kan en gi inn 0, 1 eller flere verdier.

I koden under til venstre så er en addChildren-metoden definert med et slikt varargs-parameter. Vi ser at metoden kan så iterere over elementene i children-tabellen og legge inn hvert enkelt. (Her kunne vi også brukt en vanlig foreach-løkke, men vi ville få frem at children er en vanlig Java-tabell). I eksemplet i midten så kalles addChildren-metoden ved å angi alle barna som enkelt-argumenter.

...