package java; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * List<? extends Object> list相当于是List<?> list * 如果要把值放到list中,不能直接add,要先放到一个非泛型的list中,在通过下面传参的方式进行处理,如果知道具体是哪个类型 * 并且不是使用工具类中的方法或继承父类的方法,一般不适用泛型。 */ public class GenericTest { public static void main(String[] args) { Map<String, Object> map = new HashMap<String, Object>(); Map<String, Object> map01 = new HashMap<String, Object>(); Map<String, Object> map02 = new HashMap<String, Object>(); Map<String, Object> map03 = new HashMap<String, Object>(); map.put("1", "a"); map.put("2", "b"); map01.put("1", "a"); map01.put("3", "c"); map03.put("1", "a"); map03.put("4", "d"); List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); List<Map<String, Object>> list01 = new ArrayList<Map<String, Object>>(); list.add(map); list.add(map01); list.add(map03); // System.out.println(list); for (Object object : list) { map02 = (Map<String, Object>) object; String value = (String) map02.get("1"); if ("a".equals(value)) { list01.add(map02); // System.out.println(list01); // System.out.println(); } } System.out.println(test(list01)); } private static List<? extends Object> test(List<? extends Object> list) { return list; } }