泛型处理 : List<? extends Object> list相当于是List<?> list

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;
	}
}

  

原文地址:https://www.cnblogs.com/qqyong123/p/8478489.html