capypad
0 Tage Serie
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
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.