public SetExecutor getSetExecutor(Class locatorClass, Object identifier, Class arg) {
        final Class<?> clazz = locatorClass;
        final String property = (identifier == null ? null : identifier.toString());

        // 尝试一下bean处理
        if (property != null) {
            PropertySetExecutor pExecutor = new PropertySetExecutor(getIntrospector(), clazz, property, arg);
            if (pExecutor.isAlive()) {
                return pExecutor;
            }
        }

        // 尝试一下map处理
        MapSetExecutor mExecutor = new MapSetExecutor(getIntrospector(), clazz, property, arg);
        if (mExecutor.isAlive()) {
            return mExecutor;
        }

        // 尝试一下直接field操作
        FieldSetExecutor fExecutor = new FieldSetExecutor(getIntrospector(), clazz, property, arg);
        if (fExecutor.isAlive()) {
            return fExecutor;
        }

        throw new BeanMappingException("can not found SetExecutor for Class[" + clazz.getName() + "] , identifier["
                                       + identifier + "]");
    }