• classidget获取object的id, 递归遍历所有方法 DictMethod | callObject | invokeObjectMethod


    public static anytype invokeObjectMethod(Object _object, identifiername _methodName, boolean _tryBaseClass = false)
    {
        DictClass  dictClass = new DictClass(classidget(_object));
        DictClass  dictClassBase;
        DictMethod dictMethod;
        int i;
    ;
        for (i=1; i<=dictClass.objectMethodCnt(); i++)
        {
            if (dictClass.objectMethod(i) == _methodName)
            {
                dictMethod = dictClass.objectMethodObject(i);
                if (dictMethod.parameterCnt() == 0)
                {
                    // invokeObjectMethod is listed as a dangerous API. Just suppress BP error;
                    // CAS is implemented by DictClass::callObject.

                    // BP deviation documented
                    return dictClass.callObject(_methodName, _object);
                }
                throw error(strfmt("@SYS87800", _methodName));
            }
        }

        if (_tryBaseClass && dictClass.extend())
        {
            dictClassBase = new DictClass(dictClass.extend());

            // BP deviation documented
            return SysDictClass::invokeObjectMethod(dictClassBase.makeObject(), _methodName, _tryBaseClass);
        }

        throw error(strfmt("@SYS60360", _methodName));
    }

  • 相关阅读:
    1、远程连接工具
    Restful架构API编码规范
    61、springmvc-异步请求-返回DeferredResult
    60、springmvc-异步请求-返回Callable
    59、servlet3.0-异步请求
    58、springmvc-定制与接管SpringMVC
    HTTP层 —— 响应
    HTTP层 —— 请求
    HTTP层 —— 控制器
    HTTP层 —— CSRF保护
  • 原文地址:https://www.cnblogs.com/perock/p/2294137.html
Copyright © 2020-2023  润新知