/**
  * Verifies that all the elements in the actual <code>Object</code> array belong to the specified
  * type. Matching includes subclasses of the given type.
  *
  * <p>For example, consider the following code listing:
  *
  * <pre>
  * Number[] numbers = { 2, 6 ,8 };
  * assertThat(numbers).hasComponentType(Integer.class);
  * </pre>
  *
  * The assertion <code>hasAllElementsOfType</code> will be successful.
  *
  * @param type the expected type.
  * @return this assertion object.
  * @throws NullPointerException if the given type is <code>null</code>.
  * @throws AssertionError if the component type of the actual <code>Object</code> array is not the
  *     same as the specified one.
  */
 public ObjectArrayAssert hasAllElementsOfType(Class<?> type) {
   validateIsNotNull(type);
   isNotNull();
   for (Object o : actual) {
     if (type.isInstance(o)) continue;
     failIfCustomMessageIsSet();
     fail(
         concat(
             "not all elements in array:",
             inBrackets(actual),
             " belong to the type:",
             inBrackets(type)));
   }
   return this;
 }
 /**
  * Verifies that at least one element in the actual <code>Object</code> array belong to the
  * specified type. Matching includes subclasses of the given type.
  *
  * @param type the expected type.
  * @return this assertion object.
  * @throws AssertionError if the actual <code>Object</code> does not have any elements of the
  *     given type.
  */
 public ObjectArrayAssert hasAtLeastOneElementOfType(Class<?> type) {
   validateIsNotNull(type);
   isNotNull();
   boolean found = false;
   for (Object o : actual) {
     if (!type.isInstance(o)) continue;
     found = true;
     break;
   }
   if (found) return this;
   failIfCustomMessageIsSet();
   throw failure(
       concat(
           "array:",
           inBrackets(actual),
           " does not have any elements of type:",
           inBrackets(type)));
 }