public static ID invokeVarArg(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));
  }
public static ID invokeVarArg(final ID id, final Pointer selector, Object... args)