code: @GwtIncompatible("incompatible method")
    @Nullable
    public static Object findValueOfType(final Collection<?> collection, final Class<?>[] types) {
      if (CollectionUtils.isEmpty(collection) || ObjectUtils.isEmpty(types)) {
        return null;
      }
      for (final Class<?> type : types) {
        final Object value = CollectionUtils.findValueOfType(collection, type);
        if (value != null) {
          return value;
        }
      }
      return null;
    }
docs: Find a single value of one of the given types in the given Collection: searching the Collection
  for a value of the first type, then searching for a value of the second type, etc.
  
  @param collection the collection to search
  @param types the types to look for, in prioritized order
  @return a value of one of the given types found if there is a clear match, or {@code null} if
  none or more than one such value found