//协变(Number是Integer的父类,那么List<? extends Number>是List<? extends Integer>的父类)
//只能读,不能写,== kotlin out
List<? extends Integer> integerList = new ArrayList<>();
List<? extends Number> outList = integerList;
// outList.add(1.1);
Number i = outList.get(0);
//逆变(Number是Integer的父类,那么List<? super Double>是List<? super Number>的父类)
//只能写,不能读,== kotlin in
List<? super Number> inList = new ArrayList<>();
List<? super Double> doubleList = inList;
doubleList.add(1.1);
Object o = inList.get(0);