docs: @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());
          }
      }