public static Object[] toObjectArray(Varargs luaArgs, int luaStartIndex) { // Don't check upper bound -- otherwise varargs after an optional arg are annoying to use Checks.checkRange(luaStartIndex, "luaStartIndex", 1); Object[] result = new Object[luaArgs.narg() + 1 - luaStartIndex]; for (int n = 0; n < result.length; n++) { result[n] = CoerceLuaToJava.coerceArg(luaArgs.arg(luaStartIndex + n), Object.class); } return result; }