Consumer with more than one argument in Java 8?

For 3 and more arguments you could use curried(http://en.wikipedia.org/wiki/Currying) functions with last consumer:

Function<Double, Function<Integer, Consumer<String>>> f = d -> i -> s -> {
            System.out.println("" + d+ ";" + i+ ";" + s); 
        };
f.apply(1.0).apply(2).accept("s");

Output is:

1.0;2;s

It’s enough to have a function of one argument to express function of any number of arguments:
https://en.wikipedia.org/wiki/Currying#Lambda_calculi

Leave a Comment