ich stehe gerade etwas auf der leitung. hat der ? operator in diesem beispiel irgendwelche vorteile (gegenüber dem anderen beispiel)?
mir ist klar, dass eine List<? extends Number> zB eine List<Integer> akzeptieren kann, weil durch die Wildcard gekennzeichnet ist, dass man nur lesend auf die liste zugreifen kann und es somit kein Problem gibt (also keine falschen typen in die liste kommen können). selbiges erreiche ich aber auch mit List<T extends Number>. hat der ? operator nur den vorteil, dass man nicht im methoden-kopf einen weiteren generischen Typen hinzufügen muss?
private <T extends A> void printList(List<T> list) {
..
}
private void printList(List<? extends A> list) {
..
}
mir ist klar, dass eine List<? extends Number> zB eine List<Integer> akzeptieren kann, weil durch die Wildcard gekennzeichnet ist, dass man nur lesend auf die liste zugreifen kann und es somit kein Problem gibt (also keine falschen typen in die liste kommen können). selbiges erreiche ich aber auch mit List<T extends Number>. hat der ? operator nur den vorteil, dass man nicht im methoden-kopf einen weiteren generischen Typen hinzufügen muss?