您可以使用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 中使用数组的方式。
也可以看看