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));
    }

  • 相关阅读:
    redis常见面试题
    nginx常见的面试题
    python学习笔记(15)pymysql数据库操作
    python中的if not
    python学习笔记(24)-类与对象
    python学习笔记(23)-异常处理
    python学习笔记(22)-os文件操作模块
    Maven---pom.xml配置详解
    maven+jmeter+jenkins集成
    适配器模式
  • 原文地址:https://www.cnblogs.com/perock/p/2294137.html
Copyright © 2011-2022 走看看