code: public static String getSimpleName(final Type name) {
      final Class<?> clazz = getRawClass(name);
      final String[] nameArray = clazz.getName().split(REGEXP);
      final String ret = nameArray[nameArray.length - 1];
      if (ret.length() == 0) {
        throw new IllegalArgumentException("Class " + name + " has zero-length simple name.  Can't happen?!?");
      }
      return ret;
    }
docs: Get the simple name of the class. This varies from the one in Class, in
  that it returns "1" for Classes like java.lang.String$1 In contrast,
  String.class.getSimpleName() returns "", which is not unique if
  java.lang.String$2 exists, causing all sorts of strange bugs.
  
  @param name
  @return