code: @NullSafe
    protected static Class<?>[] resolveInterfaces(Object obj, Class<?>... interfaces) {
      Set<Class<?>> allImplementedInterfaces = new HashSet<>(getInterfaces(obj));
  
      allImplementedInterfaces.addAll(stream(nullSafeArray(interfaces, Class.class))
        .filter(ClassUtils::isInterface).collect(Collectors.toList()));
  
      return allImplementedInterfaces.toArray(new Class<?>[allImplementedInterfaces.size()]);
    }
docs: Resolves all the {@link Class interfaces} implemented by the given {@link Object object's} {@link Class}
  including all the given {@link Class interfaces} in the {@link Class} array.
  
  @param obj {@link Object} to evaluate.
  @param interfaces array of {@link Class interfaces} to includes in the result.
  @return an array of {@link Class interfaces} implemented by the given {@link Object object's} {@link Class}
  including all {@link Class interfaces} from the given {@link Class} array.
  @see org.cp.elements.lang.ClassUtils#getInterfaces(Object)
  @see java.lang.Class
  @see java.lang.Object