这里你把传入的map里面封装list是?, 那么上面的传入的map也必须是?的  只要改的一致就可以了,

解决方案 »

  1.   

    public <T> void test(Map<String, List<T>> maplist) {
    System.out.println("OK");
    }
      

  2.   

    /*
     * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */package test;import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Map;/**
     *
     * @author Administrator
     */
    public class Test{HashMap<String, ArrayList<String>> maplist1 = new HashMap<>();
    HashMap<String, ArrayList<Integer>> maplist2 = new HashMap<>();
    public void a() {
    test(maplist1);
    test(maplist2);
    }public <T> void test(Map<String, ArrayList<T>> maplist) {
    System.out.println("OK");
    }
    public static void main(String[] args){
        Test t=new Test();
        t.a();
    }
    }
      

  3.   

    public class Test
    {
    public static void main(String[] args) throws Exception
    {

    List<Integer> listInteger = new ArrayList<Integer>();
    List<String> listString = new ArrayList<String>();
    printList(listInteger); //编译无错;
    printList(listString);

    HashMap<String, List<Integer>> maplist1 = new HashMap<String, List<Integer>>();
    HashMap<String, List<String>> maplist2 = new HashMap<String, List<String>>();
    test(maplist1); //编译有错;
    test(maplist2);

    } //因为是泛型,
    public static void printList(List<?> list)
    {
    System.out.println("print OK");
    } //因为是泛型,HashMap后的String 和 List<?> 都应该是确定的;
    public void test(HashMap<String, List<?>> maplist22)
    {
    System.out.println("OK");
    }
    }
      

  4.   


    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;class Test {
    Map<String, List<String>> maplist1 = new HashMap<String, List<String>>();
    Map<String, List<Integer>> maplist2 = new HashMap<String, List<Integer>>(); public void a() {
    List<String> l1 = new ArrayList<String>();
    l1.add("t1");
    List<Integer> l2 = new ArrayList<Integer>();
    l2.add(1);
    maplist1.put("1", l1);
    maplist2.put("1", l2);
    test(maplist1);
    test(maplist2);
    } public <T> void test(Map<String, List<T>> maplist) {
    System.out.println("OK");
    List<T> list = maplist.get("1");
    for(T t : list){
    System.out.println(t);
    System.out.println(t.getClass());
    }
    }

    public static void main(String[] args) {
    new Test().a();
    }
    }
      

  5.   

    打印:
    OK
    t1
    class java.lang.String
    OK
    1
    class java.lang.Integer
      

  6.   


    你是1.x的版本jdk?