b.invokeinterface(MethodHandler.class.getName(), "invoke", LJAVA_LANG_OBJECT, new String[] { LJAVA_LANG_OBJECT,
LJAVA_LANG_REFLECT_METHOD, LJAVA_LANG_REFLECT_METHOD, "[" + LJAVA_LANG_OBJECT });
if (addReturnInstruction) {
// now we need to return the appropriate type
if (method.getReturnType().equals(DescriptorUtils.VOID_CLASS_DESCRIPTOR)) {
b.returnInstruction();
} else if(DescriptorUtils.isPrimitive(method.getReturnType())) {
Boxing.unbox(b, method.getReturnType());
b.returnInstruction();
} else {
String castType = method.getReturnType();