使用 Array.newInstance(kind, size);可以按照指定类型和长度,创建一个指定类型的数组
对于在泛型中创建数组,使用 Array.newInstance(kind, size)是推荐的方式
查看java源代码这是一个native方法,即是使用C或者C++实现的,速度相对也会很快
对于在泛型中创建数组,使用 Array.newInstance(kind, size)是推荐的方式
package com.liuc.test.think.chapter15;
import java.lang.reflect.Array;
import java.util.Arrays;
public class ArrayMaker<T> {
private Class<T> kind;
public ArrayMaker(Class<T> kind) {
super();
this.kind = kind;
}
@SuppressWarnings("unchecked")
T[] create(int size){
return (T[]) Array.newInstance(kind, size);
}
public static void main(String[] args) {
ArrayMaker<String> stringMaker=new ArrayMaker<String>(String.class);
String[] stringArray=stringMaker.create(9);
System.out.println(Arrays.toString(stringArray));
}
}
查看java源代码这是一个native方法,即是使用C或者C++实现的,速度相对也会很快
public static Object newInstance(Class<?> componentType, int length)
throws NegativeArraySizeException {
return newArray(componentType, length);
}
private static native Object newArray(Class componentType, int length)
throws NegativeArraySizeException;