您可以使用instanceof.
RelationalExpression:
RelationalExpression instanceof ReferenceType
在运行时,instanceof运算符的结果是true如果RelationalExpression的值不是null,并且可以将引用强制转换为ReferenceType而无需引发 a ClassCastException。否则结果为false。
这意味着您可以执行以下操作:
Object o = new int[] { 1,2 };
System.out.println(o instanceof int[]); // prints "true"
如果要检测所有数组类型,则必须检查对象是否为instanceof boolean[], byte[], short[], char[], int[], long[], float[], double[], 或。Object[]
此外, anint[][]是 an instanceof Object[],因此取决于您要如何处理嵌套数组,它可能会变得复杂。
对于toString,java.util.Arrays有 atoString(int[])和其他你可以使用的重载。它也deepToString(Object[])适用于嵌套数组。
public String toString(Object arr) {
if (arr instanceof int[]) {
return Arrays.toString((int[]) arr);
} else //...
}
这将是非常重复的(但甚至java.util.Arrays是非常重复的),但这就是在 Java 中使用数组的方式。
也可以看看