docs: public static Class<?> getPrimitiveClass(Type type) {
          switch (type.getDescriptor().charAt(0)) {
              case 'B':
                  return byte.class;
              case 'C':
                  return char.class;
              case 'D':
                  return double.class;
              case 'F':
                  return float.class;
              case 'I':
                  return int.class;
              case 'J':
                  return long.class;
              case 'S':
                  return short.class;
              case 'V':
                  return void.class;
              case 'Z':
                  return boolean.class;
  
              default:
                  throw new IllegalArgumentException("Unrecognized type [ " + type.getDescriptor() + " ]");
          }
      }