Вы можете использовать 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.Arrays
has 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()
.