java / intermediate
Snippet
Generics: Obere Schranken bei Wildcards
Obere Schranken bei Wildcards (? extends T) erlauben es einer Collection, Objekte vom Typ T oder dessen Unterklassen zu enthalten. Dies ist nützlich, um Daten aus einer Collection zu lesen und dabei die Typsicherheit für verschiedene numerische Typen zu gewährleisten.
snippet.java
1
2
3
4
5
6
public double sumOfList(List<? extends Number> list) {double s = 0.0;for (Number n : list)s += n.doubleValue();return s;}
Erklärung
1
List<? extends Number> list
Deklariert eine Liste, die jeden Typ enthalten kann, der eine Unterklasse von Number ist (z. B. Integer, Double).
2
for (Number n : list)
Iteriert durch die Liste und behandelt jedes Element als Number, was aufgrund des Wildcards sicher ist.