ca.astore(2); // Method, index, array
// compare method names
ca.invokevirtual("java.lang.reflect.Method", "getName", "()Ljava/lang/String;");
ca.ldc(methodToLoad.getName());
ca.invokevirtual("java.lang.Object", "equals", "(Ljava/lang/Object;)Z"); // int,index,array
ca.ifEq(loopBegin);
// compare return types
ca.aload(2);
ca.invokevirtual("java.lang.reflect.Method", "getReturnType", "()Ljava/lang/Class;");
ca.loadType(DescriptorUtils.makeDescriptor(methodToLoad.getReturnType()));
ca.invokevirtual("java.lang.Object", "equals", "(Ljava/lang/Object;)Z"); // int,index,array