??????????????List<? super T>??Set<? extends T>??????????????????<? super T>???????T??????κ?T?????<? extends T>???????T??????κ?T?????????????????????????????????????????
????extends
????List<? extends Number> foo3??????????????ζ?????μ??????????
????// Number "extends" Number (in this context)
????List<? extends Number> foo3 = new ArrayList<? extends Number>();
????// Integer extends Number
????List<? extends Number> foo3 = new ArrayList<? extends Integer>();
????// Double extends Number
????List<? extends Number> foo3 = new ArrayList<? extends Double>();
????????????????????????????????????foo3?б??ж???????????????????????????????Number???????????б???????Number??????????Number???????????????????Integer?????foo3??????????List<Double>?????????????Double?????foo3??????????List<Integer>??
????д??????????????????????????????????????????????foo3???????????????Integer???????foo3???????List<Double>????????????Double???????foo3???????List<Integer>????????????Number???????foo3???????List<Integer>????????List<? extends T>?в????κ??????????????????????б???????????????????????????б??????洢????????????????????????????ж????T????T??????
????super
??????????????List<? super T>??
????List<? super Integer> foo3??????????????ζ???????????????
????// Integer is a "superclass" of Integer (in this context)
????List<? super Integer> foo3 = new ArrayList<Integer>();
????// Number is a superclass of Integer
????List<? super Integer> foo3 = new ArrayList<Number>();
????// Object is a superclass of Integer
????List<? super Integer> foo3 = new ArrayList<Object>();
????????????????????????????????????foo3?б??ж????????????????????????????????Integer?????foo3???????List<Number>????List<Object>?????????????Number?????foo3???????List<Object>??????????????????????Object????Object????????????????????????????????
????д???????????????????????????????????????????????foo3?????????????Integer??????????????????б?????Integer??????????Integer?????????????Integer???????????Integer????????????????Double???????foo3???????ArrayList<Integer>?????????Number???????foo3???????ArrayList<Integer>?????????Object???????foo3???????ArrayList<Integer>??
????PECS
????????PECS??????????Producer?????extends?????????Consumer?????super??
?????????????extends
????????????????б???T?????????????????б??ж??T??????????????????????б???????<? extends T>??????List<? extends Integer>??????????????б???????κ?????
?????????????super
??????????????б????T????????????????T????????????б??У??????????????б???????<? super T>??????List<? super Integer>??????????????ж???????????????
????????????????????????
???????????б???????????????????????÷????????????б??????List<Integer>??
????????
??????ο?java.util.Collections???copy????(JDK1.7)??

????????????Java????????????л????Щ?????copy????????????PECS???????????????????