Witam
załóżmy że mamy Liste Double
List<Double> list = Arrays.asList(4.3, 2.7, 5.6);
I teraz mam pytanie odnośnie wildcardów. Wiemy że w strumieniach jak mamy filter to używamy Predicate<? super T>. Moje pytanie brzmi - czemu to właścwie działa.
Np.
list.stream().filter(i -> i > 3.0).forEach(i -> System.out.println(i));
Z tego co wiem zapis: ? super T oznacza że dany obiekt jest albo klasy T albo jest klasa T rozszerza klase tego obiektu - może być to np. Object albo Number. Dlaczego właściwie kompilator sie nie rzuzic że coś nie halo, bo przeciez nie można wywołać Object.compareTo(3) :)
Wzywam @jarekr000000 @Shalom i @Koziołek
scibi92