Inspired by: https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html
The functional package does provide a Consumer (1 arg) and a BiConsumer (2args) but you're on your own if you want more args. I stopped at 5 because I have never really needed more than that.
Example
public static void main(String[] args) {
Consumer.One<String> printInput = input -> System.out.println(input);
Consumer.Two<Integer, Double> printSum = (a, b) -> System.out.println(a + b);
//...
Consumer.Five<Integer, Integer, Integer, Integer, Integer> printMultiplication = (a, b, c, d, e) ->System.out.println(a * b * c * d *e);
}
Consumers
/**
* Represents an operation that accepts one or multiple arguments and returns no result.
*
* Created by Botre on 24/05/2016.
*/
public final class Consumer {
private Consumer() {
}
private interface IConsumer {
}
@FunctionalInterface
public interface One<A> extends IConsumer {
void consume(final A a);
}
@FunctionalInterface
public interface Two<A, B> extends IConsumer {
void consume(final A a, final B b);
}
@FunctionalInterface
public interface Three<A, B, C> extends IConsumer {
void consume(final A a, final B b, final C c);
}
@FunctionalInterface
public interface Four<A, B, C, D> extends IConsumer {
void consume(final A a, final B b, final C c, final D d);
}
@FunctionalInterface
public interface Five<A, B, C, D, E> extends IConsumer {
void consume(final A a, final B b, final C c, final D d, final E e);
}
}