docs: public static final TypeCategory getTypeCategory(Type type) {
          if (type instanceof GenericObjectType) {
              return ((GenericObjectType) type).getTypeCategory();
          }
  
          if (type instanceof ObjectType || type instanceof NullType) {
              return TypeCategory.PLAIN_OBJECT_TYPE;
          }
  
          if (type instanceof ArrayType) {
              return TypeCategory.ARRAY_TYPE;
          }
  
          throw new IllegalArgumentException("Not a reference type: " + type);
      }