code: public static List<String> convertClassesToClassNames(final List<Class<?>> classes) {
          if (classes == null) {
              return null;
          }
          final List<String> classNames = new ArrayList<>(classes.size());
          for (final Class<?> cls : classes) {
              if (cls == null) {
                  classNames.add(null);
              } else {
                  classNames.add(cls.getName());
              }
          }
          return classNames;
      }
docs: <p>Given a {@code List} of {@code Class} objects, this method converts
  them into class names.</p>
  
  <p>A new {@code List} is returned. {@code null} objects will be copied into
  the returned list as {@code null}.</p>
  
  @param classes  the classes to change
  @return a {@code List} of class names corresponding to the Class objects,
  {@code null} if null input
  @throws ClassCastException if {@code classes} contains a non-{@code Class} entry