我不能像这样添加new Integer(1)
:
List<? extends Number> numList = new ArrayList<Integer>();
numList.add(new Integer(1));
但我可以这样做:
List<? super Number> numList = new ArrayList<>();
numList.add(new Integer(1));
但如果我们实例化像这样的新ArrayList&lt; Integer &gt;();
它不起作用。
据我所知,这个<? extends Number>
意味着我可以插入任何扩展它的类,任何子类(Float,Double,Integer等)。
这个<? super Number>
意味着我可以插入Number及其祖先(None,Object类应该适合)
请告诉我什么我不理解泛型。
可能根本不推荐这样的代码?