public void visit(final int version, final int access, final String name, final String superName, final String[] interfaces) {
        this.version = version;
        this.access = access;
        this.name = newClassItem(name).index;
        thisName = name;
        this.superName = superName == null ? 0 : newClassItem(superName).index;
        if (interfaces != null && interfaces.length > 0) {
            interfaceCount = interfaces.length;
            this.interfaces = new int[interfaceCount];
            for (int i = 0; i < interfaceCount; ++i) {
                this.interfaces[i] = newClassItem(interfaces[i]).index;
            }
        }
    }
The methods of this class. These methods are stored in a linked list of {@link MethodWriter} objects, linked to
each other by their {@link MethodWriter#next} field. This field stores the last element of this list.
src/main/java/com/alibaba/fastjson/asm/ClassWriter.java