code: @GwtIncompatible("incompatible method")
      public static Class<?> getClass(
              final ClassLoader classLoader, final String className, final boolean initialize) throws ClassNotFoundException {
          try {
              Class<?> clazz;
              if (namePrimitiveMap.containsKey(className)) {
                  clazz = namePrimitiveMap.get(className);
              } else {
                  clazz = Class.forName(toCanonicalName(className), initialize, classLoader);
              }
              return clazz;
          } catch (final ClassNotFoundException ex) {
              // allow path separators (.) as inner class name separators
              final int lastDotIndex = className.lastIndexOf(PACKAGE_SEPARATOR_CHAR);
  
              if (lastDotIndex != -1) {
                  try {
                      return getClass(classLoader, className.substring(0, lastDotIndex) +
                              INNER_CLASS_SEPARATOR_CHAR + className.substring(lastDotIndex + 1),
                              initialize);
                  } catch (final ClassNotFoundException ex2) { // NOPMD
                      // ignore exception
                  }
              }
  
              throw ex;
          }
      }
docs: Returns the class represented by {@code className} using the
  {@code classLoader}.  This implementation supports the syntaxes
  "{@code java.util.Map.Entry[]}", "{@code java.util.Map$Entry[]}",
  "{@code [Ljava.util.Map.Entry;}", and "{@code [Ljava.util.Map$Entry;}".
  
  @param classLoader  the class loader to use to load the class
  @param className  the class name
  @param initialize  whether the class must be initialized
  @return the class represented by {@code className} using the {@code classLoader}
  @throws ClassNotFoundException if the class is not found