与如何在Java中创建通用数组相同?但扩展到2D:
import java.lang.reflect.Array;public class Example <T> { private final Class<? extends T> cls; public Example (Class<? extends T> cls) { this.cls = cls; } public void arrayExample () { // a [10][20] array @SuppressWarnings("unchecked") T[][] array = (T[][])Array.newInstance(cls, 10, 20); System.out.println(array.length + " " + array[0].length + " " + array.getClass()); } public static final void main (String[] args) { new Example<Integer>(Integer.class).arrayExample(); }}阅读上面JAB的注释后的注意:要扩展到更多维度,只需将[]和维度参数添加到newInstance()(cls是一个类,d1到d5是整数):
T[] array = (T[])Array.newInstance(cls, d1);T[][] array = (T[][])Array.newInstance(cls, d1, d2);T[][][] array = (T[][][])Array.newInstance(cls, d1, d2, d3);T[][][][] array = (T[][][][])Array.newInstance(cls, d1, d2, d3, d4);T[][][][][] array = (T[][][][][])Array.newInstance(cls, d1, d2, d3, d4, d5);
有关
Array.newInstance()详细信息,请参见。



