Вы можете использовать instanceof
.
RelationalExpression:
RelationalExpression instanceof ReferenceType
Во время выполнения результат оператора instanceof
равен true
, если значение RelationalExpression не равно null
и ссылка может быть приведена к ReferenceType без поднятия 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[]
, если вы хотите обнаружить все типы массивов.
Кроме того, int[][]
- это instanceof Object[]
, поэтому в зависимости от того, как вы хотите обрабатывать вложенные массивы, это может усложниться.
Для toString
, java.util.Arrays
имеется toString(int[])
и другие перегрузки, которые вы можете использовать. Также имеется deepToString(Object[])
для вложенных массивов.
public String toString(Object arr) {
if (arr instanceof int[]) {
return Arrays.toString((int[]) arr);
} else //...
}
Это будет очень многократно (но даже java.util.Arrays
очень многократно ), но это то же самое, что и в Java с массивами.
Смотри также