La généricité en Java et le mot clé super
Salut,
soit le code suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| public class Main {
static void method(List<? super Number> list) {
//
}
public static void main(String[] args) {
List<? super Number> list = null;
List<Object> objs = new ArrayList<>();
method(objs); // OK
list.add(12.7);// OK ??
list.add(new Object()); // this doesn't compile ???
}
} |
la question est simple: pour quoi la dernière ligne ne se compile pas!!. je comprend bien pour quoi le compilateur n' a pas signaler une erreur dans la ligne suivante:
Code:
method(objs); // OK