Вы можете использовать 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[], если вы хотите , чтобы обнаружить все типы массива.
Кроме того, an int[][]- это instanceof Object[], поэтому в зависимости от того, как вы хотите обрабатывать вложенные массивы, это может быть сложным.
Для toString, java.util.Arrayshas a toString(int[])и других перегрузок, которые вы можете использовать. Он также предназначен deepToString(Object[])для вложенных массивов.
public String toString(Object arr) {
if (arr instanceof int[]) {
return Arrays.toString((int[]) arr);
} else //...
}
Он будет очень повторяющимся (но даже java.util.Arraysочень повторяющимся ), но так обстоит дело в Java с массивами.
Смотрите также
obj.getClass().getComponentType().