Java 泛型 杠杆利用类型参数推断

一般情况下,我们使用泛型是这样的:

Map map2=new HashMap();

前后都需要加上参数的类型,编译器无法从等号前的参数类型自动推测出后面的参数类型,但使用泛型类型参数推断可以简化部分工作。

/**
 * 定义泛型方法
 * @return
 */
public  Map map()
{
    return new HashMap();
}

public void ff()
{
    //调用时,会自动根据前面的参数类型返回所需的map
    Map map=map();
    Map map2=map();
}

但是,不能直接将map()方法作为其他方法的参数传入,因为它没法判断所需的类型。需要显示说明:

public void ff(Map m)
{
}
    //调用
    Main main=new Main();
    main.ff(main.map());