public String getClassName() {
        switch (sort) {
            case VOID:
                return "void";
            case BOOLEAN:
                return "boolean";
            case CHAR:
                return "char";
            case BYTE:
                return "byte";
            case SHORT:
                return "short";
            case INT:
                return "int";
            case FLOAT:
                return "float";
            case LONG:
                return "long";
            case DOUBLE:
                return "double";
            case ARRAY:
                Type elementType = getTypeInternal(valueBuffer, valueBegin + getDimensions(), valueEnd);
                StringBuilder stringBuilder = new StringBuilder(elementType.getClassName());
                for (int i = getDimensions(); i > 0; --i) {
                    stringBuilder.append("[]");
                }
                return stringBuilder.toString();
            case OBJECT:
            case INTERNAL:
                return valueBuffer.substring(valueBegin, valueEnd).replace('/', '.');
            default:
                throw new AssertionError();
        }
    }
Computes the size of the arguments and of the return value of a method.

@param methodDescriptor a method descriptor.
@return the size of the arguments of the method (plus one for the implicit this argument),
argumentsSize, and the size of its return value, returnSize, packed into a single int i =
{@code (argumentsSize &lt;&lt; 2) | returnSize} (argumentsSize is therefore equal to {@code
i &gt;&gt; 2}, and returnSize to {@code i &amp; 0x03}).
core/src/main/java/com/alibaba/fastjson2/internal/asm/Type.java