code: private static JavaType parseGenericType(TypeFactory typeFactory, String className)
  			throws ClassNotFoundException {
  		if(className == null) {
              return null;
          }
  		int left = className.indexOf("<");
  		if(left < 0) {
  			return typeFactory.constructType(Class.forName(className.trim()));
  		}
  		int right = className.lastIndexOf(">");
  		
  		String baseClassName = className.substring(0, left);
  		String genericAll = className.substring(left + 1, right);
  		
  		assertLessThan3Dot(genericAll);
  		int dotIndex = getDotIndex(genericAll);
  		if(dotIndex < 0) {
  			return typeFactory.constructParametricType(Class.forName(baseClassName.trim()),
  					parseGenericType(typeFactory, genericAll));
  		} else {
  			String leftClassName = genericAll.substring(0, dotIndex);
  			String rightClassName = genericAll.substring(dotIndex + 1);
  			return typeFactory.constructParametricType(Class.forName(baseClassName.trim()),
  					parseGenericType(typeFactory, leftClassName),
  					parseGenericType(typeFactory, rightClassName));
  		}
  	}
docs: 解析泛型的类,只支持1个或2个的泛型类型，不支持3个及以上的
  @param className
  @return 如果没有泛型，则返回null
  @throws ClassNotFoundException