В этой статье мы разберемся с различными способами проверки того, является ли объект массивом в java, с примерами.
1. Использование метода isArray()
java.lang.Class
имеет метод isArray()
, который возвращает значение true, если объект, для которого он вызывается, представляет класс массива.
Чтобы получить объект класса для объекта, вызовите метод getClass()
. Пример
int[] arr = new int[]{1, 2, 3}; if (arr.getClass().isArray()) { System.out.println("Object is an array"); } else { System.out.println("Object is not an array"); }
Документация по isArray()
состояниям метода,
Определяет, представляет ли этот объект
Class
класс массива.
2. Использование экземпляра
Оператор экземпляра Java проверяет, относится ли объект слева от него к типу класса справа, и возвращает true
или false
соответственно. Пример
int[] arr = new int[]{1, 2, 3}; if (arr instanceof int[]) { System.out.println("Object is an array"); } else { System.out.println("Object is not an array"); }
В этом примере мы используем оператор instanceof
, чтобы проверить, является ли переменная массива экземпляром типа массива int[]
.
instanceof
более лаконичен, чем isArray()
.
Однако его можно использовать только для проверки определенного типа массива, такого как int[]
в приведенном выше примере.
Для проверки массивов разных типов нам нужно использовать все массивы с instanceof
, как показано ниже.
public boolean isArray(Object obj) { return (obj instanceof boolean[] || obj instanceof byte[] || obj instanceof short[] || obj instanceof char[] || obj instanceof int[] || obj instanceof long[] || obj instanceof float[] || obj instanceof double[] || obj instanceof Object[] ); }
Этот метод будет работать для объектов всех типов, которые на самом деле являются массивами, даже для наших пользовательских объектов.
Надеюсь, статья была полезной.
Оригинал статьи здесь.