@Override
    public void visitLdcInsn(final Object cst) {
        Class<?> ctsCls = cst.getClass();
        if (ctsCls.equals(Type.class)) {
            setNextPushTypes(Type.getType(Class.class));
        } else if (ctsCls.equals(Integer.class)) {
            setNextPushTypes(Type.INT_TYPE);
        } else if (ctsCls.equals(Float.class)) {
            setNextPushTypes(Type.FLOAT_TYPE);
        } else if (ctsCls.equals(Long.class)) {
            setNextPushTypes(Type.LONG_TYPE);
        } else if (ctsCls.equals(Double.class)) {
            setNextPushTypes(Type.DOUBLE_TYPE);
        } else if (ctsCls.equals(String.class)) {
            setNextPushTypes(Type.getType(String.class));
        }
        stackLocalOperator(LDC);
        mv.visitLdcInsn(cst);
    }