Можна використовувати 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[]
, якщо ви хочете , щоб виявити всі типи масиву.
Крім того, an 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 з масивами.
Дивитися також
obj.getClass().getComponentType()
.