zoukankan      html  css  js  c++  java
  • 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));
    }

  • 相关阅读:
    软件工程概论(课堂作业01)
    java小程序(课堂作业06)
    动手动脑(课堂作业06)
    动手动脑(课堂作业05)
    java小程序(课堂作业04)
    动手动脑(课堂作业04)
    java小程序(课堂作业03)
    动手动脑(课堂作业03)
    动手动脑(课堂作业02)
    Codeforces 178B1-B3 Greedy Merchants
  • 原文地址:https://www.cnblogs.com/perock/p/2294137.html
Copyright © 2011-2022 走看看