code: @SuppressWarnings("unchecked")
      public static <T> List<T> getElementValueArray(AnnotationMirror anno, CharSequence name, Class<T> expectedType, boolean useDefaults) {
          return ((List<AnnotationValue>) getElementValue(anno, name, List.class, useDefaults))
                  .stream()
                  .map(elementVal -> expectedType.cast(elementVal.getValue()))
                  .collect(Collectors.toList());
      }
docs: Get the attribute with the name {@code name} of the annotation
  {@code anno}, where the attribute has an array type. One element of the
  result is expected to have type {@code expectedType}.
  
  Parameter useDefaults is used to determine whether default values
  should be used for annotation values. Finding defaults requires
  more computation, so should be false when no defaulting is needed.
  
  @param anno         the annotation to disassemble
  @param name         the name of the attribute to access
  @param expectedType the expected type used to cast the return type
  @param useDefaults  whether to apply default values to the attribute.
  @return the value of the attribute with the given name