ID (final ID id, final Pointer selector, Object... args) { // c functions and objc methods have at least 1 fixed argument, we therefore need to separate out the first argument return myFoundationLibrary.objc_msgSend(id, selector, args[0], Arrays.copyOfRange(args, 1, args.length)); }