JAVA高级复习-自定义泛型方法

泛型方法:在方法中出现了泛型的结构,泛型参数与类的泛型参数没有任何关系,也就是说,泛型方法所属的类是不是泛型类都没有关系

//泛型方法:在方法中出现了泛型的结构,泛型参数与类的泛型参数没有任何关系
    //也就是说,泛型方法所属的类是不是泛型类都没有关系
    //下述方法才为泛型方法,注意格式
    public <E> List<E> copyFromArrayToList(E[] arr) {
        List<E> list = new ArrayList<>();
        for (E e : arr) {
            list.add(e);
        }
        return list;
    }

总结:泛型方法可以声明为静态的,原因:泛型参数是在调用方法的时候确定的,并非在实例化类时确定。

/**
     * 下面的为静态泛型方法,为什么可以呢,因为泛型方法是被对象调用的,
     * 而之前的带类的泛型参数的静态方法,是类初始化的时候就被调用了
     * 总结:泛型方法可以声明为静态的,原因:泛型参数是在调用方法的时候确定的,并非在实例化类时确定。
     **/
    public static <E> List<E> copyFromArrayToList2(E[] arr) {
        List<E> list = new ArrayList<>();
        for (E e : arr) {
            list.add(e);
        }
        return list;
    }

测试泛型方法

/**
     * 测试泛型方法
     */
    @Test
    public void test01() {
        Order<String> order = new Order<>();
        Integer[] arr = new Integer[]{1, 2, 3};
        List<Integer> integers = order.copyFromArrayToList(arr);
        System.out.println(integers);
    }
posted @ 2020-09-11 21:31  温森  阅读(441)  评论(0编辑  收藏  举报