code: public static ParameterizedType createParameterizedType(Class<?> rawClass, Type... genericTypes) {
          return new ParameterizedType() {
              @Override
              public Type[] getActualTypeArguments() {
                  return genericTypes;
              }
  
              @Override
              public Type getRawType() {
                  return rawClass;
              }
  
              @Override
              public Type getOwnerType() {
                  return null;
              }
          };
      }
docs: Create a parameterized type from a raw class and its type arguments.
  
  @param rawClass the raw class to construct the parameterized type
  @param genericTypes the generic arguments
  @return the parameterized type