16.10. Wildcards (Jokerzeichen) kommen zu Hilfe

Es sieht zwar ungewöhnlich aus, aber es gibt tatsächlich einen Weg, ein Methodenargument zu erzeugen, das eine ArrayList eines beliebigen Haustier-Untertyps aufnehmen kann. Der einfachste Weg ist, ein Wildcard (einen Platzhalter; der englische Begriff Wildcard bezeichnet ursprünglich den Joker in einem Kartenspiel) zu verwenden. Wildcards wurden speziell aus diesem Grund in die Sprache Java aufgenommen.

public void tiereAnnehmen(ArrayList<? extends Haustier> haustiere) {
  for(Haustier h: haustiere) {
    h.fressen();
  }
}

Erinnern Sie sich, das Schlüsselwort »extends« bedeutet hier je nach Typ entweder extends ODER implements. Wenn Sie also eine ArrayList von Typen entgegennehmen möchten, die das Interface ...

Get Java™ von Kopf bis Fuß now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.