Abstract base class for Java function implementations that take one argument and return one value.
Subclasses need only implement {@link LuaValue#call(LuaValue)} to complete this class, simplifying development. All other uses of {@link #call()}, {@link #invoke(Varargs)},etc, are routed through this method by this class, dropping or extending arguments with {@code nil} values as required.
If more than one argument are required, or no arguments are required, or variable argument or variable return values, then use one of the related function {@link ZeroArgFunction}, {@link TwoArgFunction}, {@link ThreeArgFunction}, or {@link VarArgFunction}.
See {@link LibFunction} for more information on implementation libraries and library functions.
@see #call(LuaValue)
@see LibFunction
@see ZeroArgFunction
@see TwoArgFunction
@see ThreeArgFunction
@see VarArgFunction