public static boolean initFunctions(Object obj, List<Func> dst, String funcStr) {

        if (StringUtils.isEmpty(funcStr) || StringUtils.isBlank(funcStr)) {
            return true;
        }
        int PRE_ARGS_NUM = -1;
        Class<?>[] PRE_ARGS_TYPE = null;
        try {
            PRE_ARGS_NUM = obj.getClass().getDeclaredField("PRE_ARGS_NUM").getInt(obj);
            PRE_ARGS_TYPE = (Class<?>[]) obj.getClass().getDeclaredField("PRE_ARGS_TYPE").get(obj);
        } catch (IllegalArgumentException | SecurityException | IllegalAccessException | NoSuchFieldException ex) {
            NoticeMessageJFrame.noticeMessage(ex.getClass() + ":" + ex.getMessage());
        }

        List<String> funcs = getFunctions(funcStr);
        for (String func : funcs) {
            String funcName = getFuncName(func);
            String[] funcParams = getFuncParams(func);

            Class<?>[] paramsType = new Class[funcParams.length + PRE_ARGS_NUM];
            Arrays.fill(paramsType, PRE_ARGS_NUM, paramsType.length, String.class);
            System.arraycopy(PRE_ARGS_TYPE, 0, paramsType, 0, PRE_ARGS_NUM);

            try {
                Method method = obj.getClass().getMethod(funcName, paramsType);  //根据函数名 && 参数类型，找到对应的函数

                dst.add(new Func(obj, method, PRE_ARGS_NUM, funcParams));
            } catch (SecurityException | NoSuchMethodException ex) {
                NoticeMessageJFrame.noticeMessage(ex.getClass() + ":" + ex.getMessage());
                return false;
            } catch (IllegalArgumentException ex) {
                NoticeMessageJFrame.noticeMessage(ex.getClass() + ":" + ex.getMessage());
            }
        }

        return dst.size() > 0;
    }