// ?extends T 该中的T表示上界 参数化类型必须比T更形象化 只能往外取,不能往里面存
// 错误写法 List<? extends Number> list =new ArrayList<Object>();
List<? extends Number> list =new ArrayList<Integer>();
Number number = list.get(0);
// list.add();
// ?super T 该中的T表示下界 参数化类型必须比T更为抽象 不影响往里面存,但往外取只能放在Object对象中
// 错误写法 List<? super Number> list1 =new ArrayList<Float>();
List<? super Integer> list1 =new ArrayList<Number>();
list1.add(new Integer(12));
Object object = list1.get(0);
参考文档:https://blog.youkuaiyun.com/notonlyrush/article/details/72810411