boolean isEqualTo(final Item i) {
        switch (type) {
            case 1 /* ClassWriter.UTF8 */:
            case 8 /* ClassWriter.STR */:
            case 7 /* ClassWriter.CLASS */ :
            case 13 /* ClassWriter.TYPE_NORMAL */ :
                return i.strVal1.equals(strVal1);
            case 15 /* ClassWriter.TYPE_MERGED */ :
            case 5 /* ClassWriter.LONG */ :
            case 6 /* ClassWriter.DOUBLE */:
                return i.longVal == longVal;
            case 3 /* ClassWriter.INT */ :
            case 4 /* ClassWriter.FLOAT */:
                return i.intVal == intVal;
            case 12 /* ClassWriter.NAME_TYPE */:
                return i.strVal1.equals(strVal1) && i.strVal2.equals(strVal2);
                // case ClassWriter.FIELD:
                // case ClassWriter.METH:
                // case ClassWriter.IMETH:
            default:
                return i.strVal1.equals(strVal1) && i.strVal2.equals(strVal2) && i.strVal3.equals(strVal3);
        }
    }
Indicates if the given item is equal to this one. <i>This method assumes that the two items have the same
{@link #type}</i>.

@param i the item to be compared to this one. Both items must have the same {@link #type}.
@return <tt>true</tt> if the given item if equal to this one, <tt>false</tt> otherwise.
src/main/java/com/alibaba/fastjson/asm/Item.java