code: @SuppressWarnings("unchecked")
      public Class<T> getClassType() throws ClassNotFoundException {
          Type clsType = getType();
  
          if (getType() instanceof ParameterizedType) {
              return (Class<T>) ((ParameterizedType) clsType).getRawType();
          } else {
              return (Class<T>) Class.forName(clsType.getTypeName());
          }
      }
docs: Workaround to ensure type does not come back as T due to erasure, this enables you to
  create a TypeReference via {@link Class Class&lt;T&gt;}.
  
  @return the parameterized Class type if applicable, otherwise a regular class
  @throws ClassNotFoundException if the class type cannot be determined