我假设您没有关于数组类型的任何信息,例如当您只有 Object 引用它时。那样的话……
在Java 中有java.lang.reflect.Array 类可用于帮助您处理数组,例如获取其元素、长度等。您也可以使用java.lang.Class 类来获取有关任何对象类的类型的信息,例如isArray(),如果它是数组getComponentType(),则可以查看数组元素的类(对于String[],它将返回String)。
这里有一些代码示例,可用于打印一维或多维数组中的元素
public static void printElements(Object someArray) {
if (someArray == null) {
System.out.print(someArray);
return;
}
Class<?> clazz = someArray.getClass();
if (clazz.isArray()) {// we need to iterate over its elements
int length = Array.getLength(someArray);
System.out.print("[");
for (int i = 0; i < length; i++) {
// lets test if array is multidimensional
if (clazz.getComponentType().isArray()) {// if element is also
// arrays
// we can process them with our method
printElements(Array.get(someArray, i));
} else {// here element is not an array
// so we can print it
System.out.print(Array.get(someArray, i));
if (i < length - 1)
System.out.print(", ");
}
}
System.out.print("]");
} else {
System.out.println(someArray+" is not an array!");
}
}
用法:
int[][][] arr = { { { 1, 2, 3 }, null, { 4, 5 } }, {} };
printElements(arr);
输出:
[[[1, 2, 3]null[4, 5]][]]