while (clazz != NULL) {
Method* methods;
size_t methodCount;
size_t i;
if (findVirtual) {
methods = clazz->virtualMethods;
methodCount = clazz->virtualMethodCount;
} else {
methods = clazz->directMethods;
methodCount = clazz->directMethodCount;
}
for (i = 0; i < methodCount; i++) {
Method* method = &methods[i];
if (compareMethodHelper(method, name, returnType, argCount,
argTypes) == 0) {
return method;
}
}
if (! isHier) {
break;
}
clazz = clazz->super;
}
return NULL;
Method* methods;
size_t methodCount;
size_t i;
if (findVirtual) {
methods = clazz->virtualMethods;
methodCount = clazz->virtualMethodCount;
} else {
methods = clazz->directMethods;
methodCount = clazz->directMethodCount;
}
for (i = 0; i < methodCount; i++) {
Method* method = &methods[i];
if (compareMethodHelper(method, name, returnType, argCount,
argTypes) == 0) {
return method;
}
}
if (! isHier) {
break;
}
clazz = clazz->super;
}
return NULL;
本文探讨了在类层次结构中查找特定方法的过程,通过遍历类及其子类的直接和虚拟方法,实现方法的精确定位。
734

被折叠的 条评论
为什么被折叠?



