这里类型使用Object和泛型什么差别?

来源:3-1 Java 获取方法信息

Wae_Chan

2015-09-24 22:08

public static Object expend(Object arr) {
        // 反射创建数组的方式
        // 1.获取原数组长度
        int oldLen = Array.getLength(arr);
        int newLen = (int) (oldLen * 1.5);
        // 2.获取原数组的组件类型
        Class<?> type = arr.getClass().getComponentType();
        // 3.创建新的数组
        Object newArr = Array.newInstance(type, newLen);
        // 4.将原数组中的元素一一设置到新数组中
        for (int i = 0; i < oldLen; i++) {
            // 根据指定下标来获取元素
            Object oo = Array.get(arr, i);
            // 设置到新数组中
            Array.set(newArr, i, oo);
        }
        return newArr;
    }

写回答 关注

1回答

  • 慕客火星人
    2015-12-16 13:42:41

    Java 泛型的参数只可以代表类,不能代表个别对象。由于 Java 泛型的类型参数之实际类型在编译时会被消除,所以无法在运行时得知其类型参数的类型。Java 编译器在编译泛型时会自动加入类型转换的编码,故运行速度不会因为使用泛型而泛型约束加快。Java 允许对个别泛型的类型参数进行约束,包括以下两种形式(假设 T 是泛型的类型参数,C 是一般类、泛类,或是泛型的类型参数):T 实现接口 I 。T 是 C ,或继承自 C 。一个泛型类不能实现Throwable接口。


反射——Java高级开发必须懂的

反射,Java高级开发必须要懂的知识点,学好Java高级课程的基础

151466 学习 · 335 问题

查看课程

相似问题