docs: public final static boolean isClassType(final Type type) {
          if (type instanceof Class) return true;
          if (type instanceof WildcardType) return false;
          if (type instanceof TypeVariable) return false;
          if (type instanceof GenericArrayType) return isClassType(((GenericArrayType) type).getGenericComponentType());
          if (!(type instanceof ParameterizedType)) return false; //只能是null了
          final ParameterizedType ptype = (ParameterizedType) type;
          if (ptype.getOwnerType() != null && !isClassType(ptype.getOwnerType())) return false;
          if (!isClassType(ptype.getRawType())) return false;
          for (Type t : ptype.getActualTypeArguments()) {
              if (!isClassType(t)) return false;
          }
          return true;
      }