public void invoke(Method method) { TypeDesc ret = TypeDesc.forClass(method.getReturnType()); Class[] paramClasses = method.getParameterTypes(); TypeDesc[] params = new TypeDesc[paramClasses.length]; for (int i=0; i<params.length; i++) { params[i] = TypeDesc.forClass(paramClasses[i]); } Class clazz = method.getDeclaringClass(); if (Modifier.isStatic(method.getModifiers())) { invokeStatic(clazz.getName(), method.getName(), ret, params); } else if (clazz.isInterface()) { invokeInterface(clazz.getName(), method.getName(), ret, params); } else { invokeVirtual(clazz.getName(), method.getName(), ret, params); } }
public void invoke(Method method) { TypeDesc ret = TypeDesc.forClass(method.getReturnType()); Class[] paramClasses = method.getParameterTypes(); TypeDesc[] params = new TypeDesc[paramClasses.length]; for (int i=0; i<params.length; i++) { params[i] = TypeDesc.forClass(paramClasses[i]); } Class clazz = method.getDeclaringClass(); if (Modifier.isStatic(method.getModifiers())) { invokeStatic(clazz.getName(), method.getName(), ret, params); } else if (clazz.isInterface()) { invokeInterface(clazz.getName(), method.getName(), ret, params); } else { invokeVirtual(clazz.getName(), method.getName(), ret, params); } }