docs: @SuppressWarnings("unchecked")
    public <C extends T> C build() {
      if(p == null) {
        throw new AbortException("build() may be called only once.");
      }
      final T obj = ClassGenericsUtil.parameterizeOrAbort(clazz, p);
      if(p.hasUnusedParameters()) {
        LOG.warning("Unused parameters: " + p.getRemainingParameters());
      }
      p = null; // Prevent build() from being called again.
      return (C) obj;
    }