1、泛型数组说明
java确实是不支持声明泛型数组的,当然,更准确的表达是,数组的类型不可以是类型变量,除非是采用通配符的方式。
在java中,不能通过直接通过t[] tarr=new t[10]的方式来创建数组,最简单的方式便是通过array.newinstance(class<t> type,int size)的方式来创建数组。
2、实例
如下面这段程序:
package hash; import java.lang.reflect.array; /** * 数组的工具 * * @author david day */public class arrayutils { /** * 根据数组类型的class创建对应类型的数组 * * @param <t> 目标类型 * @param clazz * @param length 数组长度 * @return */ public static <t> t[] newarraybyarrayclass(class<t[]> clazz, int length) { return (t[]) array.newinstance(clazz.getcomponenttype(), length); } /** * 根据普通类型的class创建数组 * * @param <t> 目标类型 * @param clazz * @param length 数组长度 * @return */ public static <t> t[] newarraybyclass(class<t> clazz, int length) { return (t[]) array.newinstance(clazz, length); } public static void main(string[] args) { // 判断一个class是否是数组类型,可以用class实例的isarray方法。 string[] byarray = newarraybyarrayclass(string[].class, 10); string[] byone = newarraybyclass(string.class, 10); system.out.println(byarray.getclass().isarray()); system.out.println(byone.getclass().isarray()); }}
以上就是java中如何创建泛型数组的详细内容。