# Functional Interfaces

In Java 8+, a functional interface is an interface that has just one abstract method (aside from the methods of Object). See JLS §9.8. Functional Interfaces.

# List of standard Java Runtime Library functional interfaces by signature

Parameter Types Return Type Interface
() void Runnable
() T Supplier
() boolean BooleanSupplier
() int IntSupplier
() long LongSupplier
() double DoubleSupplier
(T) void Consumer
(T) T UnaryOperator
(T) R Function<T,R>
(T) boolean Predicate
(T) int ToIntFunction
(T) long ToLongFunction
(T) double ToDoubleFunction
(T, T) T BinaryOperator
(T, U) void BiConsumer<T,U>
(T, U) R BiFunction<T,U,R>
(T, U) boolean BiPredicate<T,U>
(T, U) int ToIntBiFunction<T,U>
(T, U) long ToLongBiFunction<T,U>
(T, U) double ToDoubleBiFunction<T,U>
(T, int) void ObjIntConsumer
(T, long) void ObjLongConsumer
(T, double) void ObjDoubleConsumer
(int) void IntConsumer
(int) R IntFunction
(int) boolean IntPredicate
(int) int IntUnaryOperator
(int) long IntToLongFunction
(int) double IntToDoubleFunction
(int, int) int IntBinaryOperator
(long) void LongConsumer
(long) R LongFunction
(long) boolean LongPredicate
(long) int LongToIntFunction
(long) long LongUnaryOperator
(long) double LongToDoubleFunction
(long, long) long LongBinaryOperator
(double) void DoubleConsumer
(double) R DoubleFunction
(double) boolean DoublePredicate
(double) int DoubleToIntFunction
(double) long DoubleToLongFunction
(double) double DoubleUnaryOperator
(double, double) double DoubleBinaryOperator