java 泛型数组
Posted 随意的马蒂洛克
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 泛型数组相关的知识,希望对你有一定的参考价值。
public class GenericArrayWithTypeToken<T> { private T[] array; public GenericArrayWithTypeToken(Class<T> type,int sz) { array = (T[]) Array.newInstance(type, sz); //array = (T[])new Object[sz]; 会出现类型转换异常 } public void put(int index,T item) { array[index] = item; } public T get(int index) { return array[index]; } public T[] rep() { return array; } public static void main(String[] args) { GenericArrayWithTypeToken<Integer> gai = new GenericArrayWithTypeToken<>(Integer.class, 10); Integer[] ia = gai.rep(); } }
java创建泛型数组可以通过Array类的newInstance方法创建,包含两个参数,第一个是数组类型,第二个是长度.
如果使用T[ ]创建数组会编译错误.
如果使用 (T[ ])new Object[SIZE] 虽然编译器不会出错,但是运行期会出错,毕竟创建的是Object数组,array实际指向的是Object数组,无法强转化为T.
以上是关于java 泛型数组的主要内容,如果未能解决你的问题,请参考以下文章