public static Object invokeOverloadedFromList(boolean respectIgnore, String view, Set<String> ignoreProperties, Object object, String name, List<?> args) { ClassMeta classMeta = ClassMeta.classMeta(object.getClass()); Iterable<MethodAccess> invokers = classMeta.methods(name); List<Object> list = new ArrayList(args); FieldsAccessor fieldsAccessor = FieldAccessMode.FIELD.create(true); boolean[] flag = new boolean[1]; MethodAccess method = lookupOverloadedMethod(respectIgnore, view, ignoreProperties, invokers, list, fieldsAccessor, flag, false); if (method == null) { method = lookupOverloadedMethod(respectIgnore, view, ignoreProperties, invokers, list, fieldsAccessor, flag, true); } if (method!=null) { return method.invoke(object, list.toArray(new Object[list.size()])); } else { return Exceptions.die(Object.class, "Unable to invoke method", name, "on object", object, "with arguments", args); } }
public static Object invokeOverloadedFromList(boolean respectIgnore, String view, Set<String> ignoreProperties, Object object, String name, List<?> args) { ClassMeta classMeta = ClassMeta.classMeta(object.getClass()); Iterable<MethodAccess> invokers = classMeta.methods(name); List<Object> list = new ArrayList(args); FieldsAccessor fieldsAccessor = FieldAccessMode.FIELD.create(true); boolean[] flag = new boolean[1]; MethodAccess method = lookupOverloadedMethod(respectIgnore, view, ignoreProperties, invokers, list, fieldsAccessor, flag, false); if (method == null) { method = lookupOverloadedMethod(respectIgnore, view, ignoreProperties, invokers, list, fieldsAccessor, flag, true); } if (method!=null) { return method.invoke(object, list.toArray(new Object[list.size()])); } else { return Exceptions.die(Object.class, "Unable to invoke method", name, "on object", object, "with arguments", args); } }