Type a producer parameter (? extends) and read it
Type a producer parameter (? extends) and read it
Answer
static double sum(List<? extends Number> list) { double total = 0; for (Number n : list) total += n.doubleValue(); return total; }
? extends Number is an upper-bounded wildcard: each element is at least a Number, so reading as Number is safe. You may NOT add to such a list — the exact element type is unknown. This is the producer side of PECS.