0%

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());