code: @Override
    public @NotNull ObjectArrayAssert onProperty(@NotNull String propertyName) {
      isNotNull();
      if (actual.length == 0) {
        return new ObjectArrayAssert(new Object[0]);
      }
      List<Object> values = PropertySupport.instance().propertyValues(propertyName, newArrayList(actual));
      return new ObjectArrayAssert(values.toArray());
    }
docs: Creates a new instance of {@link ObjectArrayAssert} whose target array contains the values of the
  given property name from the elements of this {@code ObjectArrayAssert}'s array. Property access works with both
  simple properties like {@code Person.age} and nested properties {@code Person.father.age}.
  <p/>
  For example, let's say we have a array of {@code Person} objects and you want to verify their age:
  <pre>
  assertThat(persons).onProperty(&quot;age&quot;).containsOnly(25, 16, 44, 37); // simple property
  assertThat(persons).onProperty("father.age").containsOnly(55, 46, 74, 62); // nested property
  
  @param propertyName the name of the property to extract values from the actual array to build a new
  {@code ObjectArrayAssert}.
  @return a new {@code ObjectArrayAssert} containing the values of the given property name from the elements of this
  {@code ObjectArrayAssert}'s array.
  @throws AssertionError     if the actual array is {@code null}.
  @throws IntrospectionError if an element in the given array does not have a matching property.
  @since 1.3