    public <T> List<ErrResult> execBatch() {
        List<ErrResult> list = new ArrayList<ErrResult>();
        @SuppressWarnings("unchecked")
        ClassInfo<T> classInfo = (ClassInfo<T>) ClassInfoFactory
                .getClassInfo(instance.getClass());
        Set<Entry<String, String>> set = exprMap.entrySet();
        Field field;
        Object value;
        Validator validator;
        for (Entry<String, String> e : set) {
            field = classInfo.getField(e.getKey());
            if (field == null) {
                throw new RuntimeException("no field in class[ "
                        + classInfo.getClazz().getName() + " ]");
            }
            try {
                value = field.get(instance);
                this.parseExpr(e.getValue());
                validator = this.validatorCreator.getValidator(tmp_key);
                if (validator == null) {
                    throw new RuntimeException("unknown validate [ "
                            + e.getValue() + " ]");
                }
                if (!validator.exec(this.jsonObj, value)) {
                    list.add(new ErrResult(e.getKey(), this.tmp_message));
                }
            }
            catch (Exception e1) {
                throw new RuntimeException(e1);
            }
        }
        return list;
    }

    public <T> List<ErrResult> execBatch() {
        List<ErrResult> list = new ArrayList<ErrResult>();
        @SuppressWarnings("unchecked")
        ClassInfo<T> classInfo = (ClassInfo<T>) ClassInfoFactory
                .getClassInfo(instance.getClass());
        Set<Entry<String, String>> set = exprMap.entrySet();
        Field field;
        Object value;
        Validator validator;
        for (Entry<String, String> e : set) {
            field = classInfo.getField(e.getKey());
            if (field == null) {
                throw new RuntimeException("no field [ " + e.getKey()
                        + " ] in class[ " + classInfo.getClazz().getName()
                        + " ]");
            }
            try {
                value = field.get(instance);
                this.parseExpr(e.getValue());
                validator = this.validatorCreator.getValidator(tmp_key);
                if (validator == null) {
                    throw new RuntimeException("unknown validate [ "
                            + e.getValue() + " ]");
                }
                if (!validator.exec(this.jsonObj, value)) {
                    list.add(new ErrResult(e.getKey(), this.tmp_message));
                }
            }
            catch (Exception e1) {
                throw new RuntimeException(e1);
            }
        }
        return list;
    }
