206. Implementing a Function that takes five (or any other arbitrary number of) arguments
We know that Java already has java.util.function.Function and the specialization of it, java.util.function.BiFunction. The Function interface defines the method apply(T, t), while BiFunction has apply(T t, U u).
In this context, we can define a TriFunction, FourFunction, or (why not?) a FiveFunction functional interface, as follows (all of these are specializations of Function):
@FunctionalInterface
public interface FiveFunction <T1, T2, T3, T4, T5, R> {
R apply(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5);
}
As its name suggests, this functional interface takes five arguments.
Now, let’s use it! Let’s assume that we have the following model:
public class PL4 {
private final double a;
private final double b;
private final double c;
private final double d;
private final double x;
public PL4(double a, double b,
double c, double...