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.