/** * 书本:《Thinking In Java》 * 功能:泛型数组转化,传递一个类型标识 * 文件:GenericArrayWithTypeToken.java * 时间:2015年4月19日10:05:43 * 作者:cutter_point */ package Lesson15_generices; import java.lang.reflect.Array; public class GenericArrayWithTypeToken<T> { private T[] array; //一个T类型的数组,实际在jvm中是Object类型的 public GenericArrayWithTypeToken(Class<T> type, int sz) { array = (T[])Array.newInstance(type, sz); //创建一个数组 } //放入数据 public void put(int index, T item) { array[index] = item; } //得到对应的数据 public T get(int index) { return (T)array[index]; } //返回数组 public T[] rep() { return array; } public static void main(String[] args) { GenericArrayWithTypeToken<Integer> gai = new GenericArrayWithTypeToken<Integer>(Integer.class, 10); //传递进去一个类型参数,这样就可以从擦除中恢复 //放入1到10 for(int i = 0; i < 10; ++i) gai.put(i, i); for(int i = 0; i < 10; ++i) System.out.print(gai.get(i) + " "); System.out.println(); Integer[] ia = gai.rep(); System.out.println(ia); } }
输出:
0 1 2 3 4 5 6 7 8 9
[Ljava.lang.Integer;@4d4bb075
【ThinkingInJava】38、泛型数组转化,传递一个类型标识
原文地址:http://blog.csdn.net/cutter_point/article/details/45814867